.\" -*- coding: UTF-8 -*- .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland .\" All rights reserved .\" .\" As far as I am concerned, the code I have written for this software .\" can be used freely for any purpose. Any derived versions of this .\" software must be clearly marked as such, and if the derived work is .\" incompatible with the protocol description in the RFC file, it must be .\" called by a name other than "ssh" or "Secure Shell". .\" .\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. .\" Copyright (c) 1999 Aaron Campbell. All rights reserved. .\" Copyright (c) 1999 Theo de Raadt. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" $OpenBSD: sshd.8,v 1.327 2024/09/15 01:19:56 djm Exp $ .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .Dd $Mdocdate: September 15 2024 $ .Dt SSHD 8 .Os .Sh NOM .Nm sshd .Nd Démon d’OpenSSH .Sh SYNOPSIS .Nm sshd .Bk -words .Op Fl 46DdeGiqTtV .Op Fl C Ar spec_connexion .Op Fl c Ar fich_certificat_hote .Op Fl E Ar fich_journal .Op Fl f Ar fich_config .Op Fl g Ar delai_grace_connexion .Op Fl h Ar fich_clef_hote .Op Fl o Ar option .Op Fl p Ar port .Op Fl u Ar longueur .Ek .Sh DESCRIPTION .Nm sshd (le démon d’OpenSSH) est le programme démon pour .Xr 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é. .Pp .Nm sshd attend les demandes de connexion en provenance des clients. Il est normalement démarré à l'amorçage de la machine (boot) depuis .Pa /etc/rc . 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. .Pp .Nm sshd peut être configuré à l’aide d’options sur la ligne de commande ou d’un fichier de configuration (par défaut .Xr sshd_config 5 )  ; les options sur la ligne de commande l’emportent sur les valeurs spécifiées dans le fichier de configuration. .Nm sshd relit son fichier de configuration quand il reçoit le signal de raccrochage .Dv SIGHUP en s’exécutant lui-même avec le nom et les options avec lesquels il a été démarré, par exemple\& .Pa /usr/sbin/sshd . .Pp Les options sont les suivantes : .Bl -tag -width Ds .It Fl 4 Forcer .Nm sshd à n’utiliser que des adresses IPv4. .It Fl 6 Forcer .Nm sshd à n’utiliser que des adresses IPv6. .It Fl C Ar spec_connexion Cette option permet de spécifier les paramètres de connexion à utiliser pour le mode de test étendu .Fl T . Si elle est définie, toute directive .Cm 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 .Fl 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 .Dq 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. .It Fl c Ar fich_certificat_hote Cette option permet de spécifier le chemin d’un fichier de certificat pour identifier .Nm 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 .Fl h ou de la directive de configuration .Cm HostKey . .It Fl D Si cette option est spécifiée, .Nm sshd ne se détachera pas du terminal et ne deviendra pas un démon, ce qui permet de surveiller facilement .Nm sshd . .It Fl 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 .Xr 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 .Fl d spécifiées (au maximum 3). .It Fl E Ar fichier_journal Si cette option est définie, les messages de journalisation de débogage sont enregistrés dans .Ar log_file au lieu du journal système. .It Fl 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. .It Fl f Ar fich_config Cette option permet de spécifier le nom du fichier de configuration. Le fichier par défaut est .Pa /etc/ssh/sshd_config . .Nm sshd refusera de démarrer s'il n'y a pas de fichier de configuration. .It Fl G Cette option permet l’analyse et l’affichage du contenu du fichier de configuration. .Nm sshd vérifie la validité du fichier de configuration, affiche la configuration effective sur la sortie standard et quitte. Les règles .Cm Match peuvent s’appliquer en spécifiant les paramètres de connexion à l’aide d’une ou plusieurs options .Fl C . .It Fl g Ar 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. .It Fl h Ar 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 .Nm 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 .Pa /etc/ssh/ssh_host_ecdsa_key , .Pa /etc/ssh/ssh_host_ed25519_key et .Pa /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. .It Fl i Cette option permet d’indiquer que .Nm sshd est exécuté par .Xr inetd 8 . .It Fl o Ar 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 .Xr sshd_config 5 . .It Fl p Ar 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 .Cm 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 .Cm ListenAddress l’emportent sur ceux spécifiés sur la ligne de commande. .It Fl 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. .It Fl 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 .Cm Match peuvent éventuellement s’appliquer en spécifiant des paramètres de connexion à l’aide d’une ou plusieurs options .Fl C . Identique au drapeau .Fl G , il inclut en plus les tests effectués par le drapeau .Fl t . .It Fl 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 .Nm sshd de manière fiable, car des options de configuration peuvent changer. .It Fl u Ar longueur Cette option permet de spécifier la taille du champ de la structure .Vt utmp qui contient le nom de la machine distante. Si le nom de la machine après résolution est plus long que .Ar 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 .Fl u0 impose que seules les adresses en valeurs décimales contenant des points seront enregistrées dans le fichier .Pa utmp . .Fl u0 permet aussi d’empêcher .Nm 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 .Cm HostbasedAuthentication et l'utilisation d'une option .Cm 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 .Cm AllowUsers ou .Cm DenyUsers . .It Fl V Affiche le numéro de version et quitte. .El .Sh 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). .Pp 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. .Pp 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 .Cm DenyUsers ou si son groupe fait partie de la liste .Cm 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\&* »). .Pp 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é. .Pp Ensuite, le client demandera un interpréteur de commande interactif ou l’exécution d’une commande non interactive que .Nm sshd exécutera à l’aide de l’interpréteur de commande de l’utilisateur en utilisant son option .Fl 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. .Pp 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. .Sh PROCESSUS DE CONNEXION Lorsqu’un utilisateur se connecte avec succès, .Nm sshd effectue les opérations suivantes : .Bl -enum -offset indent .It 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 .Pa /etc/motd (sauf si cet affichage est annulé dans le fichier de configuration ou à l’aide de .Pa ~/.hushlogin  ; voir la section .Sx FICHIERS ) . .It Si la connexion s’appuie sur un terminal, il enregistre la date et l’heure de connexion. .It Il vérifie la présence du fichier .Pa /etc/nologin  ; s’il existe, il affiche son contenu et quitte (sauf pour le superutilisateur). .It Il change ses privilèges d’exécution pour ceux d’un utilisateur normal. .It Il définit un environnement basique. .It Il lit le fichier .Pa ~/.ssh/environment , s’il existe et si les utilisateurs ont l’autorisation de changer leur environnement. Voir l’option .Cm PermitUserEnvironment dans .Xr sshd_config 5 . .It Il se place dans le répertoire personnel de l’utilisateur. .It Si le fichier .Pa ~/.ssh/rc existe et si l’option .Cm PermitUserRC de .Xr sshd_config 5 est définie, il l'exécute ; sinon, si le fichier .Pa /etc/ssh/sshrc existe, il l'exécute ; sinon, il exécute .Xr xauth 1 . Les fichiers « rc » reçoivent le protocole d'authentification et le cookie d’X11 sur l’entrée standard. Voir .Sx SSHRC ci-dessous. .It 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. .El .Sh SSHRC Si le fichier .Pa ~/.ssh/rc existe, .Xr 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 .Ev DISPLAY dans son environnement). Le script doit appeler .Xr xauth 1 , car .Nm sshd ne le fait pas automatiquement pour ajouter les cookies d’X11. .Pp 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. .Pp Ce fichier contiendra probablement du code d’initialisation suivi de quelque chose similaire à : .Bd -literal -offset 3n 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 .Ed .Pp Si ce fichier n’existe pas, .Pa /etc/ssh/sshrc est exécuté s’il existe, sinon le cookie est ajouté à l’aide de xauth. .Sh FORMAT DU FICHIER AUTHORIZED_KEYS L’option .Cm 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 .Pa ~/.ssh/authorized_keys et .Pa ~/.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 : .Pp .Bl -item -compact -offset indent .It sk-ecdsa-sha2-nistp256@openssh.com .It ecdsa-sha2-nistp256 .It ecdsa-sha2-nistp384 .It ecdsa-sha2-nistp521 .It sk-ssh-ed25519@openssh.com .It ssh-ed25519 .It ssh-rsa .El .Pp Le champ commentaire n’a pas d’utilité particulière (mais il peut s’avérer utile à l’utilisateur pour identifier la clé). .Pp 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 .Pa id_ecdsa.pub , .Pa id_ecdsa_sk.pub , .Pa id_ed25519.pub , .Pa id_ed25519_sk.pub ou .Pa id_rsa.pub et éditez-le. .Pp .Nm sshd impose une taille minimale de 1024 bits pour le modulo de la clé RSA. .Pp Les options (s’il y en a) consistent en une liste de spécifications séparées par des virgules. Aucune espace n’est permise si elle n’est pas entourée de guillemets droits doubles. Les spécifications d’option prises en charge sont les suivantes (le nom de l’option est insensible à la casse) : .Bl -tag -width Ds .It Cm agent-forwarding Cette option permet d’activer la redirection d’un agent d’authentification préalablement désactivée par l’option .Cm restrict . .It Cm 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. .Pp 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. .It Cm 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 .Cm no-pty . La commande peut contenir des guillemets si ces derniers sont échappés par des barres obliques inversées. .Pp 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 .Cm restrict , par exemple. .Pp La commande originelle fournie par le client est enregistrée dans la variable d’environnement .Ev 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 .Cm ForceCommand de .Xr sshd_config 5 . .Pp 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. .It Cm 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 .Cm PermitUserEnvironment permet de contrôler le traitement de l’environnement, ce traitement étant désactivé par défaut. .It Cm 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. .It Cm 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 .Xr ssh_config 5 pour plus d’informations à propos des motifs. .Pp En plus de la correspondance avec caractères génériques applicable aux noms des machines ou à leurs adresses, une directive .Cm from peut comparer des adresses IP en utilisant la notation CIDR adresse/taille_masque. .Pp 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). .It Cm no-agent-forwarding Cette option permet d’interdire la redirection de l’agent d’authentification lorsque cette clé est utilisée pour l’authentification. .It Cm 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 .Cm command . .It Cm no-pty Cette option permet d’empêcher l’allocation d’un terminal (toute demande pour allouer un pseudo-terminal échouera). .It Cm no-user-rc Cette option permet de désactiver l’exécution de .Pa ~/.ssh/rc . .It Cm 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. .It Cm permitlisten="[machine:]port" Cette option permet de limiter la redirection du port distant avec l’option .Fl R de .Xr 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 .Cm 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 .Xr ssh_config 5 . Une valeur de port de .Cm * correspond à n’importe quelle valeur de port. Notez qu’une définition de .Cm GatewayPorts pourra restreindre encore plus les adresses d’écoute. Notez aussi que .Xr 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 ». .It Cm permitopen="machine:port" Cette option permet de limiter la redirection du port local avec l’option .Fl L de .Xr 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 .Cm 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 .Cm * , toute valeur de port correspondra. .It Cm port-forwarding Cette option permet d’activer une redirection de port préalablement désactivée à l’aide de l’option .Cm restrict . .It Cm principals="principals" Sur une ligne .Cm 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 .Cm cert-authority . .It Cm pty Cette option permet d’activer une allocation de terminal préalablement désactivée à l’aide de l’option .Cm restrict . .It Cm 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 .Cm ecdsa-sk et .Cm ed25519-sk . .It Cm 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 .Cm ecdsa-sk et .Cm ed25519-sk . .It Cm 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 .Pa ~/.ssh/rc . Toute capacité de restriction ajoutée par la suite aux fichiers authorized_keys sera incluse dans cette ensemble. .It Cm tunnel="n" Cette option permet d’imposer un dispositif .Xr 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é. .It Cm user-rc Cette option permet d’activer l’exécution de .Pa ~/.ssh/rc préalablement désactivée à l’aide de l’option .Cm restrict . .It Cm X11-forwarding Cette option permet d’activer la redirection d’X11 préalablement désactivée à l’aide de l’option .Cm restrict . .El .Pp Un exemple de fichier authorized_keys : .Bd -literal -offset 3n # 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 ... .Ed .Sh FORMAT DU FICHIER SSH_KNOWN_HOSTS Les fichiers .Pa /etc/ssh/ssh_known_hosts et .Pa ~/.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. .Pp 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. .Pp 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é. .Pp 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 .Nm sshd authentifie un client, comme lorsqu’on utilise .Cm HostbasedAuthentication , il s’agira du nom de machine canonique du client. Quand .Xr ssh 1 authentifie un serveur, il s’agira du nom d’hôte donné par l’utilisateur, de la valeur de l’option .Cm HostkeyAlias de .Xr ssh 1 si elle est spécifiée ou du nom d’hôte canonique du serveur si l’option .Cm CanonicalizeHostname est spécifiée. .Pp 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. .Pp 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. .Pp 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 .Pa /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é. .Pp Les lignes vides ou débutant par le caractère « # » sont ignorées et considérées comme des commentaires. .Pp 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. .Pp 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 .Xr ssh 1 lorsqu’on en rencontre une. .Pp 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. .Pp 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 .Pa /etc/ssh/ssh_host_rsa_key.pub , et ajouter les noms d’hôte au début. .Xr ssh-keygen 1 fournit aussi quelques possibilités d’édition automatique de .Pa ~/.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. .Pp Un exemple de fichier ssh_known_hosts : .Bd -literal -offset 3n # 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... .Ed .Sh FICHIERS .Bl -tag -width Ds -compact .It Pa ~/.hushlogin Ce fichier permet de supprimer l’affichage de .Pa /etc/motd et de la date de dernière connexion si .Cm PrintMotd et .Cm PrintLastLog , respectivement, sont activées. Il ne supprime pas l’affichage de la bannière spécifiée par .Cm Banner . .Pp .It Pa ~/.rhosts Ce fichier est utilisé pour l’authentification basée sur la machine (voir .Xr 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 .Nm 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. .Pp .It Pa ~/.shosts Ce fichier est utilisé exactement de la même façon que .Pa .rhosts , mais il permet l’authentification basée sur la machine sans autoriser les connexions avec \fBrlogin/rsh\fP. .Pp .It Pa ~/.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. .Pp .It Pa ~/.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 .Pp Si ce fichier, le répertoire .Pa ~/.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, .Nm sshd n’autorisera pas son utilisation, à moins que l’option .Cm StrictModes n’ait été définie à « no ». .Pp .It Pa ~/.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 .Cm PermitUserEnvironment . .Pp .It Pa ~/.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. .Pp .It Pa ~/.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. .Pp .It Pa /etc/hosts.equiv Ce fichier est utilisé pour l’authentification basée sur la machine (voir .Xr ssh 1 ) . Il ne doit être accessible en écriture que pour le superutilisateur. .Pp .It Pa /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 .Xr moduli 5 . Si aucun groupe utilisable n’est trouvé dans ce fichier, ce sont les groupes internes fixes qui seront utilisés. .Pp .It Pa /etc/motd Voir .Xr motd 5 . .Pp .It Pa /etc/nologin Si ce fichier existe, .Nm 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. .Pp .It Pa /etc/ssh/shosts.equiv Ce fichier est utilisé exactement de la même manière que .Pa hosts.equiv , mais il permet l’authentification basée sur la machine sans autoriser les connexions avec \fBrlogin/rsh\fP. .Pp .It Pa /etc/ssh/ssh_host_ecdsa_key .It Pa /etc/ssh/ssh_host_ed25519_key .It Pa /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 .Nm sshd ne démarrera pas si ces fichiers sont accessibles pour le groupe et/ou les autres. .Pp .It Pa /etc/ssh/ssh_host_ecdsa_key.pub .It Pa /etc/ssh/ssh_host_ed25519_key.pub .It Pa /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 .Xr ssh-keygen 1 . .Pp .It Pa /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. .Pp .It Pa /etc/ssh/sshd_config Ce fichier contient les données de configuration pour .Nm sshd . Son format et les options de configuration sont décrits dans .Xr sshd_config 5 . .Pp .It Pa /etc/ssh/sshrc Identique à .Pa ~/.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. .Pp .It Pa /usr/share/empty.sshd Il s’agit du répertoire de .Xr chroot 2 utilisé par .Nm 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. .Pp .It Pa /run/sshd.pid Ce fichier contient l'identifiant du processus (PID) du démon .Nm 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. .El .Sh VOIR AUSSI .Xr scp 1 , .Xr sftp 1 , .Xr ssh 1 , .Xr ssh-add 1 , .Xr ssh-agent 1 , .Xr ssh-keygen 1 , .Xr ssh-keyscan 1 , .Xr chroot 2 , .Xr login.conf 5 , .Xr moduli 5 , .Xr sshd_config 5 , .Xr inetd 8 , .Xr sftp-server 8 .Sh 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. .Pp .Sh TRADUCTION La traduction française de cette page de manuel a été créée par Laurent GAUTROT et Lucien Gentis . .Pp Cette traduction est une documentation libre ; veuillez vous reporter à la .Lk https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .Pp Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .Mt debian-l10n-french@lists.debian.org .Me .