Man page - sshd(8)
Packages contains this manual
Available languages:
en fr ro deManual
SSHD (8) System Managerâs Manual SSHD (8)
NOM
sshd â DĂ©mon dâOpenSSH
SYNOPSIS
sshd [ -46DdeGiqTtV ] [ -C spec_connexion ] [ -c fich_certificat_hote ] [ -E fich_journal ] [ -f fich_config ] [ -g delai_grace_connexion ] [ -h fich_clef_hote ] [ -o option ] [ -p port ] [ -u longueur ]
DESCRIPTION
sshd (le dĂ©mon dâOpenSSH) est le programme dĂ©mon pour ssh (1). Il permet des communications sĂ©curisĂ©es et chiffrĂ©es entre deux machines considĂ©rĂ©es comme non fiables, et ce sur un rĂ©seau non sĂ©curisĂ©.
sshd attend les demandes de connexion en provenance des clients. Il est normalement dĂ©marrĂ© Ă lâamorçage de la machine (boot) depuis /etc/init.d/ssh . Il crĂ©e un nouveau dĂ©mon en se clonant Ă lâaide dâun « fork » Ă chaque connexion entrante. Les dĂ©mons clonĂ©s prennent en charge lâĂ©change de clĂ©s, le chiffrement, lâauthentification, lâexĂ©cution de commandes et lâĂ©change de donnĂ©es.
sshd peut ĂȘtre configurĂ© Ă lâaide dâoptions sur la ligne de commande ou dâun fichier de configuration (par dĂ©faut sshd_config (5))  ; les options sur la ligne de commande lâemportent sur les valeurs spĂ©cifiĂ©es dans le fichier de configuration. sshd relit son fichier de configuration quand il reçoit le signal de raccrochage SIGHUP en sâexĂ©cutant lui-mĂȘme avec le nom et les options avec lesquels il a Ă©tĂ© dĂ©marrĂ©, par exemple /usr/sbin/sshd .
Les options sont les suivantes :
-4
Forcer sshd Ă nâutiliser que des adresses IPv4.
-6
Forcer sshd Ă nâutiliser que des adresses IPv6.
-C spec_connexion
Cette option permet de spĂ©cifier les paramĂštres de connexion Ă utiliser pour le mode de test Ă©tendu -T . Si elle est dĂ©finie, toute directive Match du fichier de configuration qui sâappliquerait est exĂ©cutĂ©e avant que la configuration ne soit affichĂ©e sur la sortie standard. Les paramĂštres de connexion sont spĂ©cifiĂ©s sous forme de paires mot-clĂ©=valeur dans un ordre quelconque, soit Ă lâaide de plusieurs options -C , soit sous la forme dâune liste de paires mot-clĂ©=valeur sĂ©parĂ©es par des virgules. Les mots-clĂ©s sont « addr », « user », « host », « laddr », « port » et « rdomain » et correspondent respectivement Ă lâadresse source, lâutilisateur, le nom rĂ©solu de lâhĂŽte source, lâadresse locale, le numĂ©ro de port local et le domaine de routage. De plus, le drapeau âinvalid-userâ (qui ne prend pas dâargument de valeur) peut ĂȘtre spĂ©cifier pour simuler une connexion Ă partir dâun nom dâutilisateur non reconnu.
-c fich_certificat_hote
Cette option permet de spĂ©cifier le chemin dâun fichier de certificat pour identifier sshd lors dâun Ă©change de clĂ©s. Le fichier de certificat doit correspondre Ă un fichier de clĂ© dâhĂŽte spĂ©cifiĂ© Ă lâaide de lâoption -h ou de la directive de configuration HostKey .
-D
Si cette option est spécifiée, sshd ne se détachera pas du terminal et ne deviendra pas un démon, ce qui permet de surveiller facilement sshd .
-d
Mode de dĂ©bogage. Le serveur envoie une sortie de dĂ©bogage prolixe sur la sortie dâerreur standard et ne se place pas lui-mĂȘme Ă lâarriĂšre-plan. En outre, le serveur nâexĂ©cute pas de fork (2) et ne traite quâune connexion. Cette option nâest utilisĂ©e que pour le dĂ©bogage du serveur. Le niveau de dĂ©bogage augmente avec le nombre dâoptions -d spĂ©cifiĂ©es (au maximum 3).
-E fichier_journal
Si cette option est définie, les messages de journalisation de débogage sont enregistrés dans log_file au lieu du journal systÚme.
-e
Cette option permet dâenvoyer les messages de journalisation de dĂ©bogage sur la sortie dâerreur standard au lieu du journal systĂšme.
-f fich_config
Cette option permet de spĂ©cifier le nom du fichier de configuration. Le fichier par dĂ©faut est /etc/ssh/sshd_config . sshd refusera de dĂ©marrer sâil nây a pas de fichier de configuration.
-G
Cette option permet lâanalyse et lâaffichage du contenu du fichier de configuration. sshd vĂ©rifie la validitĂ© du fichier de configuration, affiche la configuration effective sur la sortie standard et quitte. Les rĂšgles Match peuvent sâappliquer en spĂ©cifiant les paramĂštres de connexion Ă lâaide dâune ou plusieurs options -C .
-g delai_grace_connexion
Cette option permet dâaccorder un dĂ©lai de grĂące aux clients pour sâauthentifier (par dĂ©faut 120 secondes). Si le client ne parvient pas Ă authentifier lâutilisateur avant ce dĂ©lai, le serveur se dĂ©connecte et quitte. Une valeur de 0 indique quâil nây a pas de limite.
-h fich_clef_hote
Cette option permet de spĂ©cifier un fichier Ă partir duquel la clĂ© dâhĂŽte sera lue. Cette option doit ĂȘtre utilisĂ©e si sshd nâest pas exĂ©cutĂ© par le superutilisateur, car les fichiers de clĂ© dâhĂŽte normaux ne sont en gĂ©nĂ©ral accessibles en lecture que par le superutilisateur. Les fichiers par dĂ©faut sont /etc/ssh/ssh_host_ecdsa_key , /etc/ssh/ssh_host_ed25519_key et /etc/ssh/ssh_host_rsa_key . Il est possible de spĂ©cifier plusieurs fichiers de clĂ© dâhĂŽte pour les diffĂ©rents algorithmes de clĂ© dâhĂŽte.
-i
Cette option permet dâindiquer que sshd est exĂ©cutĂ© par inetd (8).
-o option
Cette option permet de spĂ©cifier des options au format du fichier de configuration. Elle permet de spĂ©cifier des options qui nâont pas dâĂ©quivalent en ligne de commande. Pour des dĂ©tails complets Ă propos des options et de leurs valeurs, voir sshd_config (5).
-p port
Cette option permet de spĂ©cifier le port sur lequel le serveur Ă©coute les connexions entrantes (par dĂ©faut 22). On peut spĂ©cifier plusieurs options de port. Les ports spĂ©cifiĂ©s dans le fichier de configuration avec lâoption Port sont ignorĂ©s quand un port est passĂ© en option sur la ligne de commande. Les ports spĂ©cifiĂ©s en utilisant lâoption ListenAddress lâemportent sur ceux spĂ©cifiĂ©s sur la ligne de commande.
-q
Mode silencieux. Rien nâest envoyĂ© au journal systĂšme. Normalement, le dĂ©but, lâauthentification et la fin de chaque connexion sont journalisĂ©s.
-T
Mode de test Ă©tendu. Ce mode vĂ©rifie la validitĂ© du fichier de configuration, affiche la configuration effective sur la sortie standard et quitte. Les rĂšgles Match peuvent Ă©ventuellement sâappliquer en spĂ©cifiant des paramĂštres de connexion Ă lâaide dâune ou plusieurs options -C . Identique au drapeau -G , il inclut en plus les tests effectuĂ©s par le drapeau -t .
-t
Mode de test. Ce mode vĂ©rifie uniquement la validitĂ© du fichier de configuration et des clĂ©s. Il sâavĂšre utile pour mettre Ă jour sshd de maniĂšre fiable, car des options de configuration peuvent changer.
-u longueur
Cette option permet de spĂ©cifier la taille du champ de la structure utmp qui contient le nom de la machine distante. Si le nom de la machine aprĂšs rĂ©solution est plus long que longueur , câest la valeur dĂ©cimale contenant des points de lâadresse qui sera utilisĂ©e Ă la place. Cela permet dâidentifier de maniĂšre unique les machines avec des noms trĂšs longs, mĂȘme si ces derniers dĂ©passent la capacitĂ© de ce champ. SpĂ©cifier -u0 impose que seules les adresses en valeurs dĂ©cimales contenant des points seront enregistrĂ©es dans le fichier utmp . -u0 permet aussi dâempĂȘcher sshd de faire des requĂȘtes DNS, Ă moins que le mĂ©canisme dâauthentification ou la configuration le nĂ©cessite. Les mĂ©canismes dâauthentification qui peuvent nĂ©cessiter des requĂȘtes DNS comprennent HostbasedAuthentication et lâutilisation dâune option from="liste_motifs" dans un fichier de clĂ©. Les options de configuration qui nĂ©cessitent une requĂȘte DNS comprennent lâutilisation dâun motif UTILISATEUR@HOTE dans les options AllowUsers ou DenyUsers .
-V
Affiche le numéro de version et quitte.
AUTHENTIFICATION
Le dĂ©mon SSH dâOpenSSH ne prend en charge que la version 2 du protocole SSH. Pour sâidentifier, chaque hĂŽte possĂšde une clĂ© spĂ©cifique aux hĂŽtes. Chaque fois quâun client se connecte, le dĂ©mon rĂ©pond avec sa clĂ© dâhĂŽte publique. Le client compare cette clĂ© avec sa propre base de donnĂ©es pour vĂ©rifier quâelle nâa pas changĂ©. La sĂ©curitĂ© des transmissions est mise en Ćuvre au moyen dâun Ă©change de clĂ©s Diffie-Hellman. Cet Ă©change de clĂ©s rĂ©sulte en une clĂ© de session partagĂ©e. Le reste de la session est chiffrĂ© en utilisant un algorithme de chiffrement symĂ©trique. Le client sĂ©lectionne lâalgorithme de chiffrement Ă utiliser parmi ceux que propose le serveur. En outre, lâintĂ©gritĂ© de la session est assurĂ©e Ă lâaide dâun code cryptographique dâauthentification de message (MAC).
En fin de compte, le serveur et le client entament un dialogue dâauthentification. Le client tente de sâauthentifier en utilisant une authentification basĂ©e sur la machine, une authentification par clĂ© publique, une authentification par questions-rĂ©ponses ou une authentification par mot de passe.
Quel que soit le type dâauthentification, le compte est vĂ©rifiĂ© pour sâassurer quâil est accessible. Un compte nâest pas accessible sâil est verrouillĂ©, sâil fait partie de la liste DenyUsers ou si son groupe fait partie de la liste DenyGroups . La dĂ©finition dâun compte verrouillĂ© dĂ©pend du systĂšme. Certaines plateformes possĂšdent leur propre base de donnĂ©es de comptes (par exemple AIX), tandis que dâautres modifient le champ mot de passe (« *LK* » sur Solaris et UnixWare, « * » sur HP-UX, « Nologin » sur Tru64, « *LOCKED* » au dĂ©but sur FreeBSD et un « ! » au dĂ©but sur la plupart des Linux). Sâil faut dĂ©sactiver lâauthentification par mot de passe pour un compte tout en autorisant lâauthentification par clĂ© publique, le champ mot de passe doit ĂȘtre dĂ©fini Ă une valeur diffĂ©rente de celles ci-dessus (par exemple « NP » ou « *NP* »).
Si le client sâauthentifie avec succĂšs, un dialogue est entamĂ© pour prĂ©parer la session. Ă cet instant, le client peut demander lâallocation dâun pseudo-terminal, la redirection des connexions X11, la redirection des connexions TCP ou la redirection de la connexion de lâagent dâauthentification sur le canal sĂ©curisĂ©.
Ensuite, le client demandera un interprĂ©teur de commande interactif ou lâexĂ©cution dâune commande non interactive que sshd exĂ©cutera Ă lâaide de lâinterprĂ©teur de commande de lâutilisateur en utilisant son option -c . Les deux extrĂ©mitĂ©s entrent alors en mode session. Dans ce mode, les deux extrĂ©mitĂ©s peuvent envoyer des donnĂ©es Ă tout moment et ces donnĂ©es sont redirigĂ©es de/vers lâinterprĂ©teur de commande ou la commande cĂŽtĂ© serveur, et de/vers le terminal de lâutilisateur cĂŽtĂ© client.
Lorsque le programme de lâutilisateur se termine et que toutes les connexions redirigĂ©es X11 ou autres ont Ă©tĂ© fermĂ©es, le serveur envoie un code de fin de commande au client et les deux extrĂ©mitĂ©s quittent.
PROCESSUS DE CONNEXION
Lorsquâun utilisateur se connecte avec succĂšs, sshd effectue les opĂ©rations suivantes :
1.
Si la connexion sâappuie sur un terminal et si aucune commande nâa Ă©tĂ© spĂ©cifiĂ©e, il affiche la date et lâheure de derniĂšre connexion et le message du jour /etc/motd (sauf si cet affichage est annulĂ© dans le fichier de configuration ou Ă lâaide de Ë/.hushlogin ; voir la section âFICHIERSâ).
2.
Si la connexion sâappuie sur un terminal, il enregistre la date et lâheure de connexion.
3.
Il vĂ©rifie la prĂ©sence du fichier /etc/nologin ; sâil existe, il affiche son contenu et quitte (sauf pour le superutilisateur).
4.
Il change ses privilĂšges dâexĂ©cution pour ceux dâun utilisateur normal.
5.
Il définit un environnement basique.
6.
Il lit le fichier Ë/.ssh/environment , sâil existe et si les utilisateurs ont lâautorisation de changer leur environnement. Voir lâoption PermitUserEnvironment dans sshd_config (5).
7.
Il se place dans le rĂ©pertoire personnel de lâutilisateur.
8.
Si le fichier Ë/.ssh/rc existe et si lâoption PermitUserRC de sshd_config (5) est dĂ©finie, il lâexĂ©cute ; sinon, si le fichier /etc/ssh/sshrc existe, il lâexĂ©cute ; sinon, il exĂ©cute xauth (1). Les fichiers « rc » reçoivent le protocole dâauthentification et le cookie dâX11 sur lâentrĂ©e standard. Voir âSSHRCâ ci-dessous.
9.
Il exĂ©cute la commande ou lâinterprĂ©teur de commande de lâutilisateur. Toutes les commandes sont exĂ©cutĂ©es par lâinterprĂ©teur de commande de connexion de lâutilisateur spĂ©cifiĂ© dans la base de donnĂ©es des mots de passe du systĂšme.
SSHRC
Si le fichier Ë/.ssh/rc existe, sh (1) lâexĂ©cute aprĂšs avoir lu les fichiers dâenvironnement, mais avant dâexĂ©cuter la commande ou lâinterprĂ©teur de commande de lâutilisateur. Toute sortie consĂ©cutive Ă lâexĂ©cution de ce fichier doit ĂȘtre envoyĂ©e sur la sortie dâerreur standard (stderr) Ă la place de la sortie standard (stdout). Si la redirection dâX11 est activĂ©e, ce fichier recevra la paire « proto cookie » sur son entrĂ©e standard (et DISPLAY dans son environnement). Le script doit appeler xauth (1), car sshd ne le fait pas automatiquement pour ajouter les cookies dâX11.
Ce fichier avait initialement pour but dâexĂ©cuter toute routine dâinitialisation qui pouvait ĂȘtre nĂ©cessaire avant que le rĂ©pertoire personnel de lâutilisateur devienne accessible ; AFS est un exemple particulier de ce type dâenvironnement.
Ce fichier contiendra probablement du code dâinitialisation suivi de quelque chose similaire Ă Â :
if read proto cookie && [ -n "$DISPLAY" ]; then
|
if [ âecho $DISPLAY | cut -c1-10â = âlocalhost:â ]; then |
|||
|
# X11UseLocalhost=yes |
|||
|
echo add unix:âecho $DISPLAY | |
|||
|
cut -c11-â $proto $cookie |
|||
|
else |
|||
|
# X11UseLocalhost=no |
|||
|
echo add $DISPLAY $proto $cookie |
|||
|
fi | xauth -q - |
fi
Si ce fichier nâexiste pas, /etc/ssh/sshrc est exĂ©cutĂ© sâil existe, sinon le cookie est ajoutĂ© Ă lâaide de xauth.
FORMAT DU FICHIER AUTHORIZED_KEYS
Lâoption AuthorizedKeysFile permet de spĂ©cifier les fichiers contenant les clĂ©s publiques pour lâauthentification par clĂ© publique ; si elle nâest pas dĂ©finie, les fichiers par dĂ©faut sont Ë/.ssh/authorized_keys et Ë/.ssh/authorized_keys2 . Chaque ligne de ces fichiers contient une clĂ© (les lignes vides et les lignes commençant par « # » sont considĂ©rĂ©es comme des commentaires et sont ignorĂ©es). Une clĂ© publique se compose des champs suivants sĂ©parĂ©s par des espaces : options, type de clĂ©, clĂ© codĂ©e en base64 et commentaire. Le champ options est facultatif. Les types de clĂ© pris en charge sont :
sk-ecdsa-sha2-nistp256@openssh.com
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
sk-ssh-ed25519@openssh.com
ssh-ed25519
ssh-rsa
Le champ commentaire nâa pas dâutilitĂ© particuliĂšre (mais il peut sâavĂ©rer utile Ă lâutilisateur pour identifier la clĂ©).
Notez que les lignes de ces fichiers peuvent avoir une longueur de plusieurs centaines dâoctets (Ă cause de la taille de lâencodage de la clĂ© publique) avec une limite Ă 8 Ko, ce qui autorise des clĂ©s RSA dâune taille jusquâĂ 16 kbit. PlutĂŽt que de les taper Ă la main, copiez le fichier id_ecdsa.pub , id_ecdsa_sk.pub , id_ed25519.pub , id_ed25519_sk.pub ou id_rsa.pub et Ă©ditez-le.
sshd impose une taille minimale de 1024 bits pour le modulo de la clé RSA.
Le champ options (si prĂ©sent) contient des spĂ©cifications dâoption sĂ©parĂ©es par des virgules. Aucune espace nâest permise, sauf si elle est entourĂ©e de guillemets hauts doubles. Les spĂ©cifications dâoption suivantes sont prises en charge (notez que les noms dâoption sont insensibles Ă la casse) :
agent-forwarding
Cette option permet dâactiver la redirection dâun agent dâauthentification prĂ©alablement dĂ©sactivĂ©e par lâoption restrict .
cert-authority
Cette option permet dâindiquer que la clĂ© en question correspond Ă une autoritĂ© de certification (CA) qui est digne de confiance pour valider des certificats signĂ©s pour lâauthentification de lâutilisateur.
Les certificats peuvent encoder des restrictions dâaccĂšs similaires Ă ces options de clĂ©. Si les restrictions de certificat et les options de clĂ© sont toutes deux prĂ©sentes, câest lâunion des deux la plus restrictive qui sâapplique.
command="commande"
Cette option permet de spĂ©cifier une commande Ă exĂ©cuter chaque fois que la clĂ© est utilisĂ©e pour lâauthentification. La commande spĂ©cifiĂ©e par lâutilisateur (si elle existe) est ignorĂ©e. La commande est exĂ©cutĂ©e sur un pseudo-terminal si le client en demande un ; sinon elle est exĂ©cutĂ©e en dehors de tout terminal. Si un canal apte Ă la transmission sur 8 bits (« 8-bit clean channel ») est requis, on ne doit pas demander de pseudo-terminal ou on peut spĂ©cifier no-pty . La commande peut contenir des guillemets si ces derniers sont Ă©chappĂ©s par des barres obliques inversĂ©es.
Cette option peut ĂȘtre utile pour restreindre certaines clĂ©s publiques Ă des actions spĂ©cifiques. Par exemple, une clĂ© peut nâautoriser que les sauvegardes distantes, mais rien dâautre. Notez que le client peut spĂ©cifier des redirections TCP et/ou dâX11, sauf si elles sont explicitement interdites Ă lâaide de lâoption restrict , par exemple.
La commande originelle fournie par le client est enregistrĂ©e dans la variable dâenvironnement SSH_ORIGINAL_COMMAND. Notez que cette option sâapplique Ă lâexĂ©cution dâun interprĂ©teur de commande, dâune commande ou dâun sous-systĂšme. Notez aussi que cette option peut ĂȘtre outrepassĂ©e par une directive ForceCommand de sshd_config (5).
Si une commande est spĂ©cifiĂ©e et si une commande forcĂ©e est embarquĂ©e dans un certificat utilisĂ© pour lâauthentification, le certificat ne sera acceptĂ© que si les deux commandes sont identiques.
environment="NOM=valeur"
Cette option indique que la chaĂźne spĂ©cifiĂ©e doit ĂȘtre ajoutĂ©e Ă lâenvironnement lorsquâon se connecte avec cette clĂ©. Les variables dâenvironnement dĂ©finies de cette maniĂšre lâemportent sur les autres valeurs de lâenvironnement par dĂ©faut. Il est possible de spĂ©cifier plusieurs options de ce type. Lâoption PermitUserEnvironment permet de contrĂŽler le traitement de lâenvironnement, ce traitement Ă©tant dĂ©sactivĂ© par dĂ©faut.
expiry-time="spec_temps"
Cette option permet de spĂ©cifier une date aprĂšs laquelle la clĂ© ne sera plus acceptĂ©e. La date peut ĂȘtre spĂ©cifiĂ©e sous la forme AAAAMMJJ[Z] ou AAAAMMJJHHMM[SS][Z]. Dates et heures seront interprĂ©tĂ©es selon la zone horaire du systĂšme, sauf sâils sont suffixĂ©s par le caractĂšre « Z », auquel cas elles seront interprĂ©tĂ©es dans la zone horaire UTC.
from="liste_motifs"
Cette option permet de spĂ©cifier quâen plus de lâauthentification par clĂ© publique, la liste de motifs sĂ©parĂ©s par des virgules devra comporter soit le nom canonique de la machine distante, soit son adresse IP. Voir la section MOTIFS dans ssh_config (5) pour plus dâinformations Ă propos des motifs.
En plus de la correspondance avec caractÚres génériques applicable aux noms des machines ou à leurs adresses, une directive from peut comparer des adresses IP en utilisant la notation CIDR adresse/taille_masque.
Cette option a pour but de permettre dâamĂ©liorer la sĂ©curité : lâauthentification par clĂ© publique en elle-mĂȘme ne fait confiance ni au rĂ©seau, ni aux serveurs de noms, ni Ă rien du tout (sauf Ă la clĂ©) ; cependant, si quelquâun de quelque maniĂšre que ce soit vole la clĂ©, cette derniĂšre lui permettra de se connecter depuis nâimporte oĂč dans le monde. Lâajout de cette option rend plus difficile lâutilisation dâune clĂ© volĂ©e (en plus de la clĂ©, les serveurs de noms et/ou les routeurs devraient aussi ĂȘtre compromis).
no-agent-forwarding
Cette option permet dâinterdire la redirection de lâagent dâauthentification lorsque cette clĂ© est utilisĂ©e pour lâauthentification.
no-port-forwarding
Cette option permet dâinterdire la redirection TCP lorsque cette clĂ© est utilisĂ©e pour lâauthentification. Toute demande de redirection de port de la part du client renverra une erreur. Cette option peut ĂȘtre utilisĂ©e, par exemple, en combinaison avec lâoption command .
no-pty
Cette option permet dâempĂȘcher lâallocation dâun terminal (toute demande pour allouer un pseudo-terminal Ă©chouera).
no-user-rc
Cette option permet de dĂ©sactiver lâexĂ©cution de Ë/.ssh/rc .
no-X11-forwarding
Cette option permet dâinterdire la redirection dâX11 lorsque cette clĂ© est utilisĂ©e pour lâauthentification. Toute demande de redirection dâX11 de la part du client renverra une erreur.
permitlisten="[machine:]port"
Cette option permet de limiter la redirection du port distant avec lâoption -R de ssh (1) de façon Ă ce quâil ne puisse Ă©couter que sur la machine (facultatif) et le port spĂ©cifiĂ©s. Il est possible de spĂ©cifier des adresses IPv6 en les entourant de crochets. Plusieurs options permitlisten peuvent ĂȘtre spĂ©cifiĂ©es en les sĂ©parant avec des virgules. Les noms de machine peuvent contenir des caractĂšres gĂ©nĂ©riques comme dĂ©crit dans la section MOTIFS de ssh_config (5). Une valeur de port de * correspond Ă nâimporte quelle valeur de port. Notez quâune dĂ©finition de GatewayPorts pourra restreindre encore plus les adresses dâĂ©coute. Notez aussi que ssh (1) enverra le nom de machine « localhost » si aucune machine dâĂ©coute nâa Ă©tĂ© spĂ©cifiĂ©e lors de la demande de redirection, et que ce nom est traitĂ© diffĂ©remment des adresses localhost explicites « 127.0.0.1 » et « ::1 ».
permitopen="machine:port"
Cette option permet de limiter la redirection du port local avec lâoption -L de ssh (1) de façon Ă ce quâil ne puisse Ă©couter que sur la machine et le port spĂ©cifiĂ©s. Il est possible de spĂ©cifier des adresses IPv6 en les entourant de crochets. Plusieurs options permitopen peuvent ĂȘtre spĂ©cifiĂ©es en les sĂ©parant avec des virgules. Aucune comparaison de motifs ou recherche de nom nâest effectuĂ©e sur les noms de machine spĂ©cifiĂ©s, ces derniers devant ĂȘtre des noms de machine sous forme littĂ©rale et/ou des adresses. Si lâon spĂ©cifie une valeur de port de * , toute valeur de port correspondra.
port-forwarding
Cette option permet dâactiver une redirection de port prĂ©alablement dĂ©sactivĂ©e Ă lâaide de lâoption restrict .
principals="principals"
Sur une ligne cert-authority , cette option permet de spĂ©cifier les « principals » autorisĂ©s pour lâauthentification par certificat sous la forme dâune liste sĂ©parĂ©e par des virgules (NDT : un « principal » est une chaĂźne arbitraire dĂ©finie au niveau du serveur pour un utilisateur et devant ĂȘtre prĂ©sente dans le certificat du client pour que ce dernier puisse se connecter). Pour que le certificat soit acceptĂ©, au moins un nom de la liste doit apparaĂźtre dans la liste de « principal » du certificat. Cette option est ignorĂ©e pour les clĂ©s qui ne sont pas marquĂ©es comme signataires de certificat de confiance Ă lâaide de lâoption cert-authority .
pty
Cette option permet dâactiver une allocation de terminal prĂ©alablement dĂ©sactivĂ©e Ă lâaide de lâoption restrict .
no-touch-required
Avec cette option, dĂ©montrer la prĂ©sence de lâutilisateur pour les signatures effectuĂ©es en utilisant cette clĂ© nâest pas nĂ©cessaire. Cette option nâa de sens que pour les algorithmes dâauthentificateur FIDO ecdsa-sk et ed25519-sk .
verify-required
Avec cette option, les signatures effectuĂ©es en utilisant cette clĂ© doivent attester quâelles identifient lâutilisateur, par exemple Ă lâaide dâun PIN. Cette option nâa de sens que pour les algorithmes dâauthentificateur FIDO ecdsa-sk et ed25519-sk .
restrict
Cette option applique toutes les restrictions, Ă savoir la dĂ©sactivation de la redirection de port, dâagent et dâX11, ainsi que la dĂ©sactivation de lâallocation de pseudo-terminal et lâexĂ©cution de Ë/.ssh/rc . Toute capacitĂ© de restriction ajoutĂ©e par la suite aux fichiers authorized_keys sera incluse dans cette ensemble.
tunnel="n"
Cette option permet dâimposer un dispositif tun (4) sur le serveur. Si le client demande un tunnel et si cette option nâest pas dĂ©finie, câest le premier dispositif de tunnel disponible qui sera utilisĂ©.
user-rc
Cette option permet dâactiver lâexĂ©cution de Ë/.ssh/rc prĂ©alablement dĂ©sactivĂ©e Ă lâaide de lâoption restrict .
X11-forwarding
Cette option permet dâactiver la redirection dâX11 prĂ©alablement dĂ©sactivĂ©e Ă lâaide de lâoption restrict .
Un exemple de fichier authorized_keys :
# Les
commentaires sont autorisés en début de ligne.
Les lignes vides sont autorisées.
# Clé complÚte, pas de restrictions
ssh-rsa ...
# Commande forcée, désactivation du
pseudo-terminal et de toutes les redirections
restrict,command="dump /home" ssh-rsa ...
# Restriction des destinations de redirection Ă
lâaide de ssh -L
permitopen="192.0.2.1:80",permitopen="192.0.2.2:25"
ssh-rsa ...
# Restriction des Ă©couteurs de redirection Ă
lâaide de ssh -R
permitlisten="localhost:8080",permitlisten="[::1]:22000"
ssh-rsa ...
# Configuration de la redirection par tunnel
tunnel="0",command="sh /etc/netstart
tun0" ssh-rsa ...
# Outrepasser la restriction de lâallocation de
pseudo-terminal
restrict,pty,command="nethack" ssh-rsa ...
# Autoriser les clés FIDO sans nécessiter la
prĂ©sence de lâutilisateur
no-touch-required sk-ecdsa-sha2-nistp256@openssh.com ...
# Nécessite la vérification de
lâutilisateur (par exemple par PIN ou
biométrie)
# pour la clé FIDO
verify-required sk-ecdsa-sha2-nistp256@openssh.com ...
# Faire confiance à la clé de CA, autoriser
FIDO sans prĂ©sence de lâutilisateur
# si demandée dans le certificat
cert-authority,no-touch-required,principals="user_a"
ssh-rsa ...
FORMAT DU FICHIER SSH_KNOWN_HOSTS
Les fichiers /etc/ssh/ssh_known_hosts et Ë/.ssh/known_hosts contiennent les clĂ©s publiques de tous les hĂŽtes connus. Le fichier global doit ĂȘtre prĂ©parĂ© par lâadministrateur (facultatif), mais le fichier de lâutilisateur est mis Ă jour automatiquement : chaque fois que lâutilisateur se connecte Ă un hĂŽte inconnu, sa clĂ© est ajoutĂ©e au fichier de lâutilisateur.
Chaque ligne de ces fichiers contient les champs suivants : marqueur (facultatif), noms dâhĂŽte, type de clĂ©, clĂ© encodĂ©e en base64, commentaire. Les champs sont sĂ©parĂ©s par des espaces.
Le marqueur est facultatif mais sâil est prĂ©sent, il doit ĂȘtre Ă©gal à « @cert-authority » pour indiquer que la ligne contient une clĂ© dâautoritĂ© de certification (CA), ou à « @revoked » pour indiquer que la clĂ© que la ligne contient est rĂ©voquĂ©e et ne doit plus ĂȘtre acceptĂ©e. Un seul marqueur doit ĂȘtre prĂ©sent dans une ligne de clĂ©.
Les noms dâhĂŽte constituent une liste de motifs sĂ©parĂ©s par des virgules (« * » et « ? » sont des caractĂšres gĂ©nĂ©riques) ; chaque motif lâun aprĂšs lâautre est mis en correspondance avec le nom dâhĂŽte. Quand sshd authentifie un client, comme lorsquâon utilise HostbasedAuthentication , il sâagira du nom de machine canonique du client. Quand ssh (1) authentifie un serveur, il sâagira du nom dâhĂŽte donnĂ© par lâutilisateur, de la valeur de lâoption HostkeyAlias de ssh (1) si elle est spĂ©cifiĂ©e ou du nom dâhĂŽte canonique du serveur si lâoption CanonicalizeHostname est spĂ©cifiĂ©e.
Un motif peut aussi ĂȘtre prĂ©cĂ©dĂ© dâun point dâexclamation « ! » pour indiquer une nĂ©gation : si le nom dâhĂŽte correspond Ă un tel motif inversĂ©, il ne sera pas acceptĂ© (par cette ligne), mĂȘme sâil correspond Ă un autre motif de cette mĂȘme ligne. Un nom dâhĂŽte ou une adresse peuvent Ă©ventuellement ĂȘtre entourĂ©s de crochets « [ » et « ] » et suivis de « : » et dâun numĂ©ro de port non standard.
Autrement, les noms dâhĂŽte peuvent ĂȘtre stockĂ©s sous une forme hachĂ©e qui dissimule les adresses et noms dâhĂŽte au cas oĂč le contenu du fichier venait Ă ĂȘtre divulguĂ©. Les noms dâhĂŽte hachĂ©s commencent par le caractĂšre « | ». Une ligne ne doit contenir quâun seul nom dâhĂŽte hachĂ© et aucune nĂ©gation comme ci-dessus et aucun caractĂšre gĂ©nĂ©rique ne doit sâappliquer.
Le type de clĂ© et la clĂ© encodĂ©e en base64 sont directement extraits de la clĂ© dâhĂŽte qui peut ĂȘtre obtenue Ă partir de /etc/ssh/ssh_host_rsa_key.pub par exemple. Le champ commentaire facultatif continue jusquâĂ la fin de la ligne et nâest pas utilisĂ©.
Les lignes vides ou débutant par le caractÚre « # » sont ignorées et considérées comme des commentaires.
Lors dâune authentification de machine, lâauthentification est acceptĂ©e si une ligne comporte la clĂ© appropriĂ©e : soit une clĂ© qui correspond exactement, soit, si le serveur a prĂ©sentĂ© un certificat pour lâauthentification, la clĂ© de lâautoritĂ© de certification qui a signĂ© le certificat. Pour une clĂ© qui possĂšde la fiabilitĂ© dâune autoritĂ© de certification, elle doit utiliser le marqueur « @cert-authority » dĂ©crit ci-dessus.
Le fichier des hĂŽtes connus permet aussi de marquer des clĂ©s comme rĂ©voquĂ©es, par exemple lorsquâon sait que la clĂ© privĂ©e associĂ©e a Ă©tĂ© volĂ©e. Les clĂ©s rĂ©voquĂ©es sont spĂ©cifiĂ©es en ajoutant le marqueur « @revoked » en dĂ©but de ligne de clĂ© et ne sont jamais acceptĂ©es pour lâauthentification ou en tant quâautoritĂ© de certification, mais elles provoquent un avertissement de la part de ssh (1) lorsquâon en rencontre une.
Il est permis (mais dĂ©conseillĂ©) dâassocier plusieurs lignes ou diffĂ©rentes clĂ©s dâhĂŽte Ă un seul nom dâhĂŽte. Cela arrive inĂ©vitablement quand des versions courtes de noms dâhĂŽte de diffĂ©rents domaines sont enregistrĂ©es dans le fichier. Les fichiers peuvent contenir des informations qui entrent en conflit ; lâauthentification est cependant acceptĂ©e si lâon peut trouver des informations valables dans un des fichiers.
Notez que les lignes dans ces fichiers contiennent gĂ©nĂ©ralement des centaines de caractĂšres, et il nâest pas trĂšs intĂ©ressant de les saisir manuellement. On peut plutĂŽt les gĂ©nĂ©rer Ă lâaide dâun script, par exemple /etc/ssh/ssh_host_rsa_key.pub , et ajouter les noms dâhĂŽte au dĂ©but. ssh-keygen (1) fournit aussi quelques possibilitĂ©s dâĂ©dition automatique de Ë/.ssh/known_hosts comme la suppression des hĂŽtes qui correspondent Ă un nom dâhĂŽte ou la conversion de tous les noms dâhĂŽte en leurs reprĂ©sentations hachĂ©es.
Un exemple de fichier ssh_known_hosts :
# Les
commentaires sont autorisés en début de ligne
cvs.example.net,192.0.2.10 ssh-rsa AAAA1234.....=
# Un nom dâhĂŽte hachĂ©
|1|JfKTdBh7rNbXkVAQCRp4OQoPfmI=|USECr3SWf1JUPsms5AqfD5QfxkM=
ssh-rsa
AAAA1234.....=
# Une clé révoquée
@revoked * ssh-rsa AAAAB5W...
# Une clé de CA acceptée pour tout hÎte
dans *.mydomain.com ou *.mydomain.org
@cert-authority *.mydomain.org,*.mydomain.com ssh-rsa
AAAAB5W...
FICHIERS
Ë/.hushlogin
Ce fichier permet de supprimer lâaffichage de /etc/motd et de la date de derniĂšre connexion si PrintMotd et PrintLastLog , respectivement, sont activĂ©es. Il ne supprime pas lâaffichage de la banniĂšre spĂ©cifiĂ©e par Banner .
Ë/.rhosts
Ce fichier est utilisĂ© pour lâauthentification basĂ©e sur la machine (voir ssh (1) pour plus dâinformations). Sur certaines machines, ce fichier devra peut-ĂȘtre ĂȘtre accessible en lecture pour tout le monde si le rĂ©pertoire personnel de lâutilisateur est sur une partition NFS, car sshd le lit en tant que superutilisateur. De plus, ce fichier doit ĂȘtre la propriĂ©tĂ© de lâutilisateur et ne doit ĂȘtre accessible en Ă©criture par personne dâautre. Les permissions recommandĂ©es pour la plupart des machines sont : accĂšs en lecture/Ă©criture pour lâutilisateur et aucun accĂšs pour les autres.
Ë/.shosts
Ce fichier est utilisĂ© exactement de la mĂȘme façon que .rhosts , mais il permet lâauthentification basĂ©e sur la machine sans autoriser les connexions avec rlogin/rsh .
Ë/.ssh/
Ce rĂ©pertoire correspond Ă lâemplacement par dĂ©faut de toutes les informations de configuration et dâauthentification spĂ©cifiques Ă lâutilisateur. Il nâest globalement pas nĂ©cessaire de garder secret lâensemble du contenu de ce rĂ©pertoire, mais les permissions recommandĂ©es sont lecture/Ă©criture/exĂ©cution pour lâutilisateur et aucun accĂšs pour les autres.
Ë/.ssh/authorized_keys
Ce fichier liste les clĂ©s publiques (ECDSA, Ed25519, RSA) utilisables pour se connecter avec le compte de lâutilisateur. Son format est dĂ©crit plus haut. Son contenu nâest pas hautement sensible, mais les permissions recommandĂ©es sont : accĂšs en lecture/Ă©criture pour lâutilisateur et aucun accĂšs pour les autres
Si ce fichier, le rĂ©pertoire Ë/.ssh ou le rĂ©pertoire personnel de lâutilisateur Ă©taient accessible en Ă©criture par les autres utilisateurs, ce fichier pourrait ĂȘtre modifiĂ© ou remplacĂ© par des utilisateurs non autorisĂ©s. Dans ce cas, sshd nâautorisera pas son utilisation, Ă moins que lâoption StrictModes nâait Ă©tĂ© dĂ©finie à « no ».
Ë/.ssh/environment
Ce fichier (sâil existe) est lu dans lâenvironnement lors de la connexion. Il ne peut contenir que des lignes vides, des lignes de commentaires (qui commencent par le caractĂšre « # ») et des lignes dâaffectation de la forme nom=valeur. Le fichier ne doit ĂȘtre accessible en Ă©criture que pour lâutilisateur ; il nâa pas besoin dâĂȘtre accessible en lecture pour les autres. Le traitement de lâenvironnement est dĂ©sactivĂ© par dĂ©faut et contrĂŽlĂ© Ă lâaide de lâoption PermitUserEnvironment .
Ë/.ssh/known_hosts
Ce fichier contient une liste des clĂ©s dâhĂŽte pour tous les hĂŽtes auxquels lâutilisateur sâest connectĂ© et qui ne sont pas encore dans la liste globale des clĂ©s dâhĂŽte connues du systĂšme. Son format est dĂ©crit plus haut. Il ne doit ĂȘtre accessible en Ă©criture que pour son propriĂ©taire et le superutilisateur et peut, mais ce nâest pas nĂ©cessaire, ĂȘtre accessible en lecture pour les autres.
Ë/.ssh/rc
Ce fichier contient des routines dâinitialisation Ă exĂ©cuter avant que le rĂ©pertoire personnel de lâutilisateur devienne accessible. Il ne doit ĂȘtre accessible en Ă©criture que pour lâutilisateur et nâa pas besoin dâĂȘtre accessible en lecture pour les autres.
/etc/hosts.allow
/etc/hosts.deny
Ces fichiers permettent de dĂ©finir les contrĂŽles dâaccĂšs qui peuvent ĂȘtre appliquĂ©s par tcp-wrappers. Pour plus dâinformations, voir hosts_access (5).
/etc/hosts.equiv
Ce fichier est utilisĂ© pour lâauthentification basĂ©e sur la machine (voir ssh (1)). Il ne doit ĂȘtre accessible en Ă©criture que pour le superutilisateur.
/etc/ssh/moduli
Ce fichier contient les groupes Diffie-Hellman utilisĂ©s pour la mĂ©thode dâĂ©change de clĂ©s « Diffie-Hellman Group Exchange ». Son format est dĂ©crit dans moduli (5). Si aucun groupe utilisable nâest trouvĂ© dans ce fichier, ce sont les groupes internes fixes qui seront utilisĂ©s.
/etc/motd
Voir motd (5).
/etc/nologin
Si ce fichier existe, sshd empĂȘche quiconque de se connecter, Ă lâexception du superutilisateur. Le contenu de ce fichier est communiquĂ© Ă quiconque essayant de se connecter et les connexions non-superutilisateur sont refusĂ©es. Ce fichier doit ĂȘtre accessible en lecture pour tout le monde.
/etc/ssh/shosts.equiv
Ce fichier est utilisĂ© exactement de la mĂȘme maniĂšre que hosts.equiv , mais il permet lâauthentification basĂ©e sur la machine sans autoriser les connexions avec rlogin/rsh .
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key
Ces fichiers contiennent la partie privĂ©e des clĂ©s dâhĂŽte. Ils ne doivent ĂȘtre la propriĂ©tĂ© que du superutilisateur, accessibles en lecture uniquement pour ce dernier et inaccessibles pour les autres. Notez que sshd ne dĂ©marrera pas si ces fichiers sont accessibles pour le groupe et/ou les autres.
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub
Ces fichiers contiennent la partie publique des clĂ©s dâhĂŽte. Ils doivent ĂȘtre accessibles en lecture pour tous, mais accessibles en Ă©criture uniquement pour le superutilisateur. Leurs contenus doivent correspondre Ă leurs parties privĂ©es respectives. Ils ne sont pas vraiment utilisĂ©s pour pour une action quelconque ; ils sont fournis par commoditĂ© pour lâutilisateur qui peut les copier dans ses fichiers des hĂŽtes connus. Ces fichiers sont créés en utilisant ssh-keygen (1).
/etc/ssh/ssh_known_hosts
Ce fichier contient la liste globale du systĂšme des clĂ©s dâhĂŽte connues. Il doit ĂȘtre prĂ©parĂ© par lâadministrateur systĂšme de maniĂšre Ă contenir les clĂ©s dâhĂŽte publiques de toutes les machines de lâorganisation. Son format est dĂ©crit plus haut. Il doit ĂȘtre accessible en Ă©criture pour le superutilisateur et le propriĂ©taire et en lecture pour les autres.
/etc/ssh/sshd_config
Ce fichier contient les données de configuration pour sshd . Son format et les options de configuration sont décrits dans sshd_config (5).
/etc/ssh/sshrc
Identique Ă Ë/.ssh/rc , ce fichier permet de spĂ©cifier globalement des initialisations pour la connexion machine par machine. Ce fichier ne doit ĂȘtre accessible en Ă©criture que pour le superutilisateur et en lecture pour les autres.
/run/sshd
Il sâagit du rĂ©pertoire de chroot (2) utilisĂ© par sshd lors de la sĂ©paration de privilĂšges dans la phase de prĂ©-authentification. Le rĂ©pertoire ne doit contenir aucun fichier, est la propriĂ©tĂ© du superutilisateur et ne doit pas ĂȘtre accessible en Ă©criture pour le groupe ou les autres.
/run/sshd.pid
Ce fichier contient lâidentifiant du processus (PID) du dĂ©mon sshd en attente de connexions (si plusieurs dĂ©mons sont en cours dâexĂ©cution sur plusieurs ports, ce fichier contient lâidentifiant du dernier dĂ©mon dĂ©marrĂ©). Le contenu de ce fichier nâest pas sensible et il peut ĂȘtre accessible en lecture pour tout le monde.
VOIR AUSSI
scp (1), sftp (1), ssh (1), ssh-add (1), ssh-agent (1), ssh-keygen (1), ssh-keyscan (1), chroot (2), hosts_access (5), moduli (5), sshd_config (5), inetd (8), sftp-server (8)
AUTEURS
OpenSSH est dérivé de la version 1.2.12 originale et libre de ssh par Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt et Dug Song ont corrigé de nombreux bogues, rajouté des nouvelles fonctionnalités et créé OpenSSH. Markus Friedl a contribué à la prise en charge des versions 1.5 et 2.0 du protocole SSH. Niels Provos et Markus Friedl ont contribué à la prise en charge de la séparation des privilÚges.
TRADUCTION
La traduction française de cette page de manuel a été créée par Laurent GAUTROT <l dot gautrot at free dot fr> et Lucien Gentis <lucien.gentis@waika9.com>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 : https://www.gnu.org/licenses/gpl-3.0.html concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org . Debian September 15, 2024 SSHD (8)