# Clé SSH vs nologin

**URL:** <https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893>\
**Category:** Support Debian\
**Created:** [Décembre 29, 2021, 3:50 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893 "2021-12-29T15:50:35Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Décembre 29, 2021, 3:50 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/1 "2021-12-29T15:50:35Z")

</div>

Bonjour à tous

Je vous demande de l’aide concernant un paramatrage un peu particulier.

J’ai créé un compte sur ma debian et je souhaite que mon utilisateur se connecte avec cle ssh .  
Jusqu’ici tout va bien … j’ai bien la passphrase à taper et ca fonctionne.

j’ai modifier le `/etc/ssh/sshd_config` en passant les parametres ci dessous sur «&nbsp;no&nbsp;»

```nohighlight
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM no

```

Ensuite j’ai fais un user ayant un acces à un seul repertoire en sftp en lui attribuant le nologin pr des raisons de secu.

Le probleme c’est que mes utilisateurs ayant le parametre nologin, me demande une clé ssh .

Comment faire pour faire cohabité les deux connexions? est il possible de faire des cles ssh pour mes utilisateurs qui n’en sont pas vraiment ???

Merci pour votre aide

---

<div class="post-metadata">

**Author:** ![littlejohn75](https://www.debian-fr.org/user_avatar/www.debian-fr.org/littlejohn75/32/3840_2.png) [@littlejohn75](https://www.debian-fr.org/u/littlejohn75)\
**Post date:** [Décembre 31, 2021, 1:26 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/2 "2021-12-31T13:26:30Z")

</div>

> [@jeremievdv](#):
>
> Bonjour à tous

Bonjour,

> [@jeremievdv](#):
>
> j’ai modifier le `/etc/ssh/sshd_config` en passant les parametres ci dessous sur « no »

Pourrait-on avoir la sortie de

```auto
grep -v '^#' /etc/ssh/sshd_config | grep -v '^$'

```

En particulier, passer le paramètre `UsePAM` à `no` me semble assez discutable car vous vous privez ainsi de l’énorme travail des développeurs Debian pour construire un système sécurisé par défaut mais accessible par un maximum de moyens.

> [@jeremievdv](#):
>
> Ensuite j’ai fais un user ayant un acces à un seul repertoire en sftp en lui attribuant le nologin pr des raisons de secu

Qu’appelez-vous «&nbsp;attribuer le nologin&nbsp;» ? Que donne la commande

```auto
getent passwd $USER

```

Sachant que `ssh` signifie `secure` **shell** avouez que si vous donnez `/usr/sbin/nologin` comme shell à un utilisateur du système susceptible d’utiliser légitimement `ssh` c’est pour le moins contradictoire. C’est prévu pour des utilisateurs système particuliers comme `www-data``man``mail` `nobody` …  
Pouvez-vous préciser ce que vous entendez par «&nbsp;raisons de sécu&nbsp;» ?

> [@jeremievdv](#):
>
> Le probleme c’est que mes utilisateurs ayant le parametre nologin, me demande une clé ssh .

Ouh là ! Il me semble plutôt que c’est la directive `PasswordAuthentication` qui, mise à `no`, ne laisse alors que la possibilité de s’authentifier que par clé.  
La démarche habituelle serait plutôt la suivante : le gentil administrateur crée les comptes des utilisateurs en leur donnant un mot de passe provisoire. De plus, il leur met à disposition les informations pour

- se connecter avec le mot de passe fourni

- changer de mot de passe

- créer des clés SSH sur leur poste client et comment utiliser la commande `ssh-copy-id`. Comment automatiser avec `kechain`.

- Comment utiliser efficacement un compte Linux, avec une liste des services fournis.

- Étc …

En supprimant l’accès par mot de passe, vous empêchez vos utilisateurs de réaliser leurs premiers pas ☹ Une fois que tout le monde est au point pour utiliser des clés, vous pouvez fermer la porte, mais pas a priori.

> [@jeremievdv](#):
>
> Comment faire pour faire cohabité les deux connexions?

Quelles deux connexions ?  
Pour bien comprendre ce qui se passe : depuis votre poste client vous testez l’authentification en lançant la commande

```auto
ssh -v -v user@serveur id

```

dans différents cas de figure : avec et sans agent, et avec ou sans clés chargées dans l’agent

```auto
ssh-add -l

```

> [@jeremievdv](#):
>
> est il possible de faire des cles ssh pour mes utilisateurs qui n’en sont pas vraiment ???

Pas super clair. Pour du sftp vous pouvez vous inspirer de [Enabling SFTP-only access on Linux – Gerald on IT](https://geraldonit.com/2018/05/02/enabling-sftp-only-access-on-linux/)

Cordialement,  
Regards,  
Mit freundlichen Grüßen,  
مع تحياتي الخالصة

* * *

F. Petitjean  
Ingénieur civil du Génie Maritime.

Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à person  
ne !! »  
Pierre Dac

---

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Janvier 3, 2022, 10:57 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/3 "2022-01-03T10:57:54Z")

</div>

Bonjour

Merci pour votre retour.

J’ai pas étais tres clair effectivement.  
Je reprends 🙂

Je souhaite faire un serveur sftp. Ce serveur fonctinne tout va bien.

Voila ce qui est en place:  
j’ai deux comptes user 1 et 2 à qui je donne un acces à un repertoire en écriture en sftp.  
Ces deux utilisateurs ne peuvent pas executer de shell puisque c’est pas le but et j’ai donc passé ce parametre pour cela sur chaque user:  
usr/sbin/nologin

Ca fonctionne.

Maintenant, pour mon utilisateur root et mon utilisateur admin, je souhaite que ces deux users utilises les clé ssh pour se connecter mais pas mes deux users…

Aujourd’hui si j’active la connexion en clé ssh, ca me demande une clé aussi pour mes deux users … Si c’est pas possible de faire cohabité les deux solutions, comment créer des clés ssh piur mes deux autres users? Merci pour votre aide

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Janvier 3, 2022, 1:32 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/4 "2022-01-03T13:32:56Z")

</div>

Bonjour,

oui c’est possible, via les directives `Match User` dans le fichier `/etc/ssh/sshd_config`.  
Par exemple, tu peux utiliser quelque chose comme:

```auto
# directives globales pour tous les utilisateurs
PasswordAuthentication no
[...]
# directives spéciales pour user1 et user2, en fin de fichier
Match User user1, user2
    PasswordAuthentication yes

```

Ensuite, il faudra exécuter `systemctl restart ssh`

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Janvier 3, 2022, 5:06 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/5 "2022-01-03T17:06:58Z")

</div>

> [@Sputnik93](#):
>
> les directives `Match User`

Ah, c’est ce que je cherchais, pourquoi je ne l’ai pas trouvé.  
Merci à toi.

---

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Janvier 4, 2022, 9:35 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/6 "2022-01-04T09:35:20Z")

</div>

Bonjour

Merci pour vos retours.  
Sputnik93, j’ai fais la modif avec un Match User mais ca ne fonctionne pas …  
Quand je fais cette regle j’ai acces refusé pour l’utilisateur concerné .

Mon utisateur root et admin son bien avec authentification SSH mais les autres ne peuvent pas se connecter parce que ca demande donc la clé

---

<div class="post-metadata">

**Author:** ![littlejohn75](https://www.debian-fr.org/user_avatar/www.debian-fr.org/littlejohn75/32/3840_2.png) [@littlejohn75](https://www.debian-fr.org/u/littlejohn75)\
**Post date:** [Janvier 4, 2022, 12:05 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/7 "2022-01-04T12:05:26Z")

</div>

> [@jeremievdv](#):
>
> j’ai fais la modif avec un Match User mais ca ne fonctionne pas …  
> Quand je fais cette regle j’ai acces refusé pour l’utilisateur concerné .

Pourrait-on avoir la règle exacte ? pas un commentaire «&nbsp;j’ai fait la modif&nbsp;» qui prête à confusion.

Si vous avez copié la suggestion de @Sputnik93

> [@Sputnik93](#):
>
> ```auto
> Match User user1, user2
> PasswordAuthentication yes
> 
> ```

et que la sortie de

```auto
getent passwd user1

```

se termine par `nologin`, cela ne m’étonne pas que l’accès soit refusé. Donnez le retour complet des commandes utilisées.

> [@jeremievdv](#):
>
> les autres ne peuvent pas se connecter parce que ca demande donc la clé

Pas de paraphrase SVP, donnez le retour complet des commandes lancées avec l’option verbeuse `-v` et même `-v -v` si vous lancez la commande `ssh`  
Pour les utilisateurs de _sftp_ uniquement, mettre

```auto
   ForceCommand internal-sftp

```

dans la partie `Match User`

Naturellement la sortie de

> [@littlejohn75](#):
>
> ```auto
> grep -v '^#' /etc/ssh/sshd_config | grep -v '^$'
> 
> ```
> 
> ```auto
> 
> ```

est toujours la bienvenue.

Cordialement,  
Regards,  
Mit freundlichen Grüßen,  
مع تحياتي الخالصة

* * *

F. Petitjean  
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »  
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

---

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Janvier 4, 2022, 12:48 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/8 "2022-01-04T12:48:27Z")

</div>

Bonjour

Merci pour votre aide et toutes mes excuses pour mon manque de clarté.

Voici ce que j’ai en configuration avec les commandes demandées:

dans `/etc/ssh/sshd_config`

```auto
PasswordResponseAuthentification no
ChallengeResponseAuthentification no
UsePAM no

```

j’ai ajouté ces deux blocs

```auto
Match Group sftp_users
	ForceCommand internal-sftp
	ChrootDirectory /sftp/%u
	AllowTcpForwarding no

Match User User1
	PasswordAuthentication yes

```

```auto
[root@SRVVH092 ~]# getent passwd User1
User1:x:1003:1001::/sftp/User1:/usr/sbin/nologin

```

```auto
grep -v '^#' /etc/ssh/sshd_config | grep -v '^$'
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM no
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
Match Group sftp_users
        ForceCommand internal-sftp
        ChrootDirectory /sftp/%u
        AllowTcpForwarding no

Match User Yaldone
        PasswordAuthentication yes

```

```auto
ssh -vv user1@10.1.1.176
[...]
User1@10.1.1.176's password:
debug2: we sent a password packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such file or directory
User1@10.1.1.176's password:

```

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 4, 2022, 1:22 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/9 "2022-01-04T13:22:53Z")

</div>

> [@jeremievdv](#):
>
> ```auto
> [root@SRVVH092 ~]# getent passwd User1
> User1:x:1003:1001::/sftp/User1:/usr/sbin/nologin
> 
> ```

Ton utilisateur est _chroot_ ? du coup quel est le besoin de limité l’accès à un shell, surtout si tu veux justement te connecter à un shell avec cet utilisateur ?

---

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Janvier 4, 2022, 2:44 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/10 "2022-01-04T14:44:59Z")

</div>

Bonjour Clochette

Non mon utilisateur est «&nbsp;User1&nbsp;».  
Je souhaite qu’il acces à un repertoire SFTP et rien d’autre … pas de shell.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Janvier 4, 2022, 2:57 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/11 "2022-01-04T14:57:10Z")

</div>

> [@jeremievdv](#):
>
> Bonjour Clochette
> 
> Non mon utilisateur est « User1 ».  
> Je souhaite qu’il acces à un repertoire SFTP et rien d’autre … pas de shell.

C’est noté, du coup ça c’est ok.

> [@jeremievdv](#):
>
> ```auto
> Subsystem sftp /usr/libexec/openssh/sftp-server
> Match Group sftp_users
> ForceCommand internal-sftp
> ChrootDirectory /sftp/%u
> AllowTcpForwarding no
> 
> Match User Yaldone
> PasswordAuthentication yes
> 
> ```

Utilise soit du Match user soit du Match group mais pas les deux 😉

soit les users appartiendront systématiquement à un group ftp-user par exemple soit tu chaine tes users avec de simple coma.

```auto
Match User User1,User2,User3
ForceCommand internal-sftp
etc ...

```

---

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Janvier 4, 2022, 3:52 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/12 "2022-01-04T15:52:20Z")

</div>

Merci pour ces précisions .

J’ai testé à mettre PasswordAuthentication yes dans le match group

Mais sans succes .

je vais tester l’inverse …

---

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Janvier 4, 2022, 4:02 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/13 "2022-01-04T16:02:12Z")

</div>

Avec cette conf j’ai le même probleme (utiisateur Yaldone)

```nohighlight
#Match Group sftp_users
# ForceCommand internal-sftp
# ChrootDirectory /sftp/%u
# AllowTcpForwarding no

Match User Yaldone
        ForceCommand internal-sftp
        ChrootDirectory /sftp/%u
        AllowTcpForwarding no
        PasswordAuthentication yes

```

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Janvier 4, 2022, 4:46 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/14 "2022-01-04T16:46:54Z")

</div>

Je ne sais pas si ça donnera grand chose, mais dans le `man sshd_config`, il y a ce paragraphe:

```auto

     Subsystem
             Configures an external subsystem (e.g. file transfer
             daemon). Arguments should be a subsystem name and a
             command (with optional arguments) to execute upon subsystem
             request.

             The command sftp-server implements the SFTP file transfer
             subsystem.

             Alternately the name internal-sftp implements an in-process
             SFTP server. This may simplify configurations using
             ChrootDirectory to force a different filesystem root on
             clients.

```

Peut-être qu’à la place de la ligne `Subsystem sftp /usr/libexec/openssh/sftp-server` tu peux essayer avec `Subsystem sftp internal-sftp`.

---

<div class="post-metadata">

**Author:** ![littlejohn75](https://www.debian-fr.org/user_avatar/www.debian-fr.org/littlejohn75/32/3840_2.png) [@littlejohn75](https://www.debian-fr.org/u/littlejohn75)\
**Post date:** [Janvier 4, 2022, 6:19 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/15 "2022-01-04T18:19:14Z")

</div>

> [@jeremievdv](#):
>
> ```auto
> grep -v '^#' /etc/ssh/sshd_config | grep -v '^
> 
> ```
> 
> HostKey /etc/ssh/ssh\_host\_rsa\_key  
> HostKey /etc/ssh/ssh\_host\_ecdsa\_key  
> HostKey /etc/ssh/ssh\_host\_ed25519\_key  
> SyslogFacility AUTHPRIV
> 
> ```auto
> 
> ```

> [@jeremievdv](#):
>
> ```auto
> GSSAPIAuthentication yes
> GSSAPICleanupCredentials yes
> UsePAM no
> X11Forwarding yes
> PrintMotd no
> AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
> AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
> AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
> AcceptEnv XMODIFIERS
> 
> ```

On est loin, très loin du fichier de configuration fourni par le paquet Debian

```auto
fp2@debpacha:~ $ grep -v '^#' /etc/ssh/sshd_config | grep -v '^$'
Include /etc/ssh/sshd_config.d/*.conf
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
fp2@debpacha:~ $

```

Ni plus ni moins. Pourrait-on savoir où vous avez trouvé toutes ces directives ?

> [@jeremievdv](#):
>
> `GSSAPIAuthentication yes`

Il y a un serveur Kerberos sur votre serveur ?

> [@jeremievdv](#):
>
> `UsePAM no`

Je répète, cela me semble contradictoire avec votre volonté d’avoir plusieurs types d’utilisateurs avec des profils de connexion et d’authentification différents. (Mais peut-être que je me trompe avec cette histoire de _nologin_ )

Cordialement,  
Regards,  
Mit freundlichen Grüßen,  
مع تحياتي الخالصة

* * *

F. Petitjean  
Ingénieur civil du Génie Maritime.

« Il est souvent trop tôt pour savoir s’il n’est pas trop tard. »  
Pierre Dac

« Rien ne sert de penser, faut réfléchir avant. »  
Pierre Dac

---

<div class="post-metadata">

**Author:** ![jeremievdv](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jeremievdv](https://www.debian-fr.org/u/jeremievdv)\
**Post date:** [Janvier 5, 2022, 1:01 UTC](https://www.debian-fr.org/t/cle-ssh-vs-nologin/85893/16 "2022-01-05T13:01:16Z")

</div>

J’ai refais un compte utilisateur mais ne mettant pas le parametre «&nbsp;nolgin&nbsp;» à sa création.

Et maintenant ca fonctionne …mes utilisateurs root et admin ont un acces avec clé ssh et mon utilisateur standard n’est autorisé qu’a faire du sftp avec son mot de passe habituel.

Merci à tous pour votre aide et conseil !!
