Scroll to navigation

SSHD_CONFIG(5) File Formats Manual SSHD_CONFIG(5)

NOM

sshd_configFichier de configuration du démon d’OpenSSH

DESCRIPTION

sshd(8) lit ses données de configuration dans le fichier /etc/ssh/sshd_config (ou dans le fichier spécifié à l'aide de l'option -f sur la ligne de commande). Chaque ligne de ce fichier contient une seule paire option/argument. Sauf mention contraire, c’est la première valeur lue qui sera utilisée pour chaque option. Les lignes qui commencent par le caractère « # » et les lignes vides sont considérées comme des commentaires. Pour représenter des valeurs contenant des espaces, les arguments doivent être entourés de guillemets droits doubles « " ».

Notez que le paquet Debian openssh-server définit plusieurs options avec des valeurs standards dans /etc/ssh/sshd_config qui ne correspondent pas aux valeurs par défaut de sshd(8)  :

Les fichiers /etc/ssh/sshd_config.d/*.conf sont inclus au début du fichier de configuration et les options qui y sont définies l’emportent donc sur celles définies dans /etc/ssh/sshd_config.

Les options disponibles et leur signification sont les suivantes (les noms d’option ne sont pas sensibles à la casse, mais les arguments le sont) :

Cette option permet de spécifier quelles variables d’environnement envoyées par le client seront copiées dans l’environnement de session ( environ(7)). Voir SendEnv et SetEnv dans ssh_config(5) pour la configuration du client. La variable d’environnement TERM est toujours acceptée quand un client demande un pseudo-terminal comme requis par le protocole. Les variables sont spécifiées à l’aide de leur nom qui peut contenir les caractères génériques « * » et « ? ». Il est possible de spécifier plusieurs variables d’environnement en les séparant par des espaces ou en définissant plusieurs directives AcceptEnv. Gardez à l’esprit que certaines variables d’environnement pourraient être utilisées pour court-circuiter des environnements utilisateur restreints ; c’est pourquoi cette directive doit être utilisée avec prudence. Par défaut, aucune variable d’environnement n’est acceptée.
Cette option permet de spécifier la famille d’adresses que sshd(8) doit utiliser. Les arguments valables sont any (la valeur par défaut), inet (utiliser IPv4 seulement) ou inet6 (utiliser IPv6 seulement).
Cette option permet de spécifier si la redirection de ssh-agent(1) est autorisée. La valeur par défaut est yes. Notez que désactiver la redirection d’agent n’améliore la sécurité que si les utilisateurs se voient aussi refuser l’accès à un interpréteur de commande, car dans le cas contraire, ils peuvent toujours installer leurs propres redirecteurs.
Cette option peut être suivie d'une liste de motifs de nom de groupe séparés par des espaces. Si elle est spécifiée, seuls les utilisateurs dont le groupe principal ou les groupes supplémentaires correspondent à un des motifs sont autorisés à se connecter. Seuls les noms de groupes sont valables ; les identifiants de groupes (GID) numériques ne sont pas reconnus. Par défaut, tous les groupes sont autorisés à se connecter. Les directives de groupe allow/deny sont traitées dans l’ordre suivant : DenyGroups, AllowGroups.

Voir la section MOTIFS dans ssh_config(5) pour plus d’informations à propos des motifs. Cette option peut apparaître plusieurs fois dans sshd_config, chaque instance s’ajoutant à la liste.

Cette option permet de spécifier si la redirection de StreamLocal (socket de domaine Unix) est autorisée. Les arguments valables sont yes (la valeur par défaut), all pour autoriser la redirection de StreamLocal, no pour interdire toute redirection de StreamLocal, local pour n’autoriser que la redirection locale (vue selon ssh(1)) ou remote pour n’autoriser que la redirection distante. Notez que désactiver la redirection de StreamLocal n’améliore la sécurité que si les utilisateurs se voient refuser l’accès à un interpréteur de commande, car dans le cas contraire, ils peuvent toujours installer leurs propres redirecteurs.
Cette option permet de spécifier si les redirections TCP sont autorisées. Les arguments valables sont yes (la valeur par défaut), all pour autoriser la redirection TCP, no pour interdire toute redirection TCP, local pour n’autoriser que la redirection locale (vue selon ssh(1)) ou remote pour n’autoriser que la redirection distante. Notez que désactiver la redirection TCP n’améliore la sécurité que si les utilisateurs se voient refuser l’accès à un interpréteur de commande, car dans le cas contraire, ils peuvent toujours installer leurs propres redirecteurs.
Cette option peut être suivie d'une liste de motifs de nom d'utilisateur séparés par des espaces. Si elle est spécifiée, seuls les noms d'utilisateur correspondant à un des motifs sont autorisés à se connecter. Seuls les noms d’utilisateur sont valables ; un identifiant d’utilisateur numérique (UID) ne sera pas reconnu. Par défaut, la connexion est autorisée pour tous les utilisateurs. Si le motif est de la forme UTILISATEUR@HÔTE, UTILISATEUR et HÔTE sont vérifiés séparément, ce qui permet de restreindre les connexions à certains utilisateurs d’un hôte particulier. Le critère HÔTE peut en plus contenir des adresses à faire correspondre sous le format CIDR adresse/taille_de_masque. Les directives d’utilisateur allow/deny sont traitées dans l’ordre suivant : DenyUsers, AllowUsers.

Voir la section MOTIFS dans ssh_config(5) pour plus d’informations à propos des motifs. Cette option peut apparaître plusieurs fois dans sshd_config, chaque instance s’ajoutant à la liste.

Cette option permet de spécifier les méthodes d’authentification qui doivent être appliquées avec succès pour qu’un utilisateur se voie autoriser l’accès. Elle doit être suivie d’une ou plusieurs listes de noms de méthode d’authentification séparés par des virgules ou de l’unique chaîne any pour indiquer le comportement par défaut qui consiste à accepter toute méthode d’authentification unique. Si des listes sont spécifiées, l’application avec succès de toutes les méthodes d’authentification d’au moins une de ces listes sera requise pour réussir l’authentification.

Par exemple, « publickey,password publickey,keyboard-interactive » nécessiterait de la part de l’utilisateur une authentification par clé publique suivie d’une authentification par mot de passe ou d’une authentification par saisie au clavier. Les méthodes d’authentification doivent être appliquées dans l’ordre selon lequel elles apparaissent dans chaque liste ; ainsi, dans cet exemple, l’application d’une méthode d’authentification par mot de passe ou par saisie au clavier avant l’application d’une méthode d’authentification par clé publique ne serait pas valable.

Avec l’authentification par saisie au clavier, il est aussi possible de restreindre l’authentification à un dispositif spécifique en ajoutant un deux-points « : » suivi de l’identifiant du dispositif bsdauth ou pam, en fonction de la configuration du serveur. Par exemple, « keyboard-interactive:bsdauth » restreint l’authentification par saisie au clavier au dispositif bsdauth.

Si la méthode d’authentification par clé publique est indiquée plusieurs fois, sshd(8) s’assure que les clés qui ont été utilisées avec succès ne seront pas réutilisées pour les authentifications suivantes. Par exemple, « publickey,publickey » requiert l’utilisation de deux clés publiques différentes pour une authentification réussie.

Notez que chaque méthode d’authentification indiquée doit aussi être explicitement activée dans la configuration.

Les méthodes d’authentification disponibles sont : « gssapi-with-mic », « hostbased », « keyboard-interactive », « none » (utilisée pour l’accès à des comptes sans mot de passe lorsque PermitEmptyPasswords est activé), « password » et « publickey ».

Cette option permet de spécifier un programme à utiliser pour rechercher les clés publiques de l’utilisateur. Le programme doit être la propriété du superutilisateur, non accessible en écriture pour le groupe ou les autres et spécifié à l’aide d’un chemin absolu. Les arguments de AuthorizedKeysCommand acceptent les symboles décrits dans la section SYMBOLES. Si aucun argument n’est spécifié, c’est le nom d’utilisateur de l’utilisateur cible qui est utilisé.

Le programme doit produire sur la sortie standard zéro ou plusieurs lignes au format authorized_keys (voir AUTHORIZED_KEYS dans sshd(8)). AuthorizedKeysCommand est utilisée après les fichiers AuthorizedKeysFile usuels et ne sera pas exécutée si une clé correspondante est trouvée dans ces derniers. Par défaut, aucune AuthorizedKeysCommand n’est exécutée.

Cette option permet de spécifier l’utilisateur sous le compte duquel la commande AuthorizedKeysCommand sera exécutée. Il est recommandé de spécifier un utilisateur dédié qui n’a pas d’autre rôle sur l’hôte que d’exécuter des commandes de clés autorisées. Si AuthorizedKeysCommand est spécifié alors que AuthorizedKeysCommandUser ne l’est pas, sshd(8) refusera de démarrer.
Cette option permet de spécifier le fichier contenant les clés publiques à utiliser pour l'authentification de l'utilisateur. Le format de ce fichier est décrit dans la section FORMAT DU FICHIER AUTHORIZED_KEYS de sshd(8). Les arguments de AuthorizedKeysFile acceptent les symboles décrits dans la section SYMBOLES. Après développement, AuthorizedKeysFile est interprété comme un chemin absolu ou comme un chemin relatif au répertoire personnel de l’utilisateur. Il est possible de spécifier plusieurs fichiers en les séparant par des blancs. Pour se passer de la vérification des clés d’utilisateur dans des fichiers, cette option doit être définie à none. L’argument par défaut de cette option est « .ssh/authorized_keys .ssh/authorized_keys2 ».
Cette option permet de spécifier un programme à utiliser pour générer une liste de « principals » de certificat autorisés en se basant sur AuthorizedPrincipalsFile (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). Le programme doit être la propriété du superutilisateur, non accessible en écriture pour le groupe ou pour les autres et spécifié à l’aide d’un chemin absolu. Les arguments de AuthorizedPrincipalsCommand acceptent les symboles décrits dans la section SYMBOLES. Si aucun argument n’est spécifié, c’est le nom d’utilisateur de l’utilisateur cible qui sera utilisé.

Le programme doit produire sur la sortie standard zéro ou plusieurs lignes du fichier AuthorizedPrincipalsFile. Si au moins une des options AuthorizedPrincipalsCommand ou AuthorizedPrincipalsFile est spécifiée, les certificats proposés par le client pour l’authentification devront contenir un « principal » faisant partie de la liste. Par défaut, aucune commande AuthorizedPrincipalsCommand n’est exécutée.

Cette option permet de spécifier l’utilisateur sous le compte duquel la commande AuthorizedPrincipalsCommand sera exécutée. Il est recommandé de spécifier un utilisateur dédié qui n’a pas d’autre rôle sur l’hôte que d’exécuter des commandes de laissez-passer autorisées. Si AuthorizedPrincipalsCommand est spécifié alors que AuthorizedPrincipalsCommandUser ne l’est pas, sshd(8) refusera de démarrer.
Cette option permet de spécifier un fichier contenant la liste des noms de « principal » acceptés pour une authentification par certificat. Lorsqu’on utilise des certificats signés par une clé listée dans TrustedUserCAKeys, un des noms contenus dans ce fichier doit apparaître dans le certificat afin que ce dernier soit accepté pour l’authentification. Chaque ligne du fichier contient un seul nom précédé des options de clé (comme décrit dans la section FORMAT DU FICHIER AUTHORIZED_KEYS de sshd(8)). Les lignes vides et les commentaires (lignes commençant par « # ») sont ignorés.

Les arguments de AuthorizedPrincipalsFile acceptent les symboles décrits dans la section SYMBOLES. Après développement, AuthorizedPrincipalsFile est interprété comme un chemin absolu ou comme un chemin relatif au répertoire personnel de l’utilisateur. L’argument par défaut est none et indique qu’aucun fichier de « principals » ne sera utilisé ; dans ce cas, le nom d’utilisateur de l’utilisateur devra apparaître dans une liste de laissez-passer du certificat pour que ce dernier soit accepté.

Notez que AuthorizedPrincipalsFile n’est utilisé que lorsque l’authentification est effectuée en utilisant une autorité de certification (CA) listée dans TrustedUserCAKeys et n’est pas consulté pour des CA définies comme fiables à l’aide de ~/.ssh/authorized_keys, bien que l’option de clé principals= offre des possibilités similaires (voir sshd(8) pour les détails).

Le contenu du fichier spécifié est envoyé à l'utilisateur distant avant que la connexion ne soit autorisée. Si l’argument est none, aucune bannière n’est affichée, ce qui correspond au comportement par défaut.
Cette option permet de spécifier quels algorithmes sont autorisés pour la signature des certificats par les autorités de certification (CA). Les algorithmes par défaut sont :
ssh-ed25519,ecdsa-sha2-nistp256,
ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
sk-ssh-ed25519@openssh.com,
sk-ecdsa-sha2-nistp256@openssh.com,
rsa-sha2-512,rsa-sha2-256

Si la liste spécifiée commence par un caractère « + », les algorithmes qu’elle contient seront ajoutés à la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caractère « - », les algorithmes qu’elle contient (pouvant contenir des caractères génériques) seront supprimés de la liste par défaut au lieu de la remplacer.

Les certificats signés en utilisant d’autres algorithmes ne seront pas acceptés pour l’authentification par clé publique ou basée sur l’hôte.

Cette option permet de spécifier si et sous quel délai sshd(8) doit fermer les canaux inactifs. Les délais sont spécifiés sous forme d’une ou plusieurs paires « type=intervalle » séparées par des blancs, où « type » doit être le mot-clé spécial « global » ou un nom de type de canal issu de la liste ci-dessous et comportant éventuellement des caractères génériques.

La valeur de délai « interval » est spécifiée en secondes ou peut utiliser une unité documentée dans la section FORMATS DE TEMPS. Par exemple, « session=5m » signifierait que les sessions interactives seraient fermées après cinq minutes d’inactivité. Spécifier une valeur de zéro désactive le délai d’inactivité.

La valeur spéciale de délai « global » s’applique à tous les canaux actifs pris dans leur ensemble. La présence de trafic sur un canal actif réinitialise le délai, mais lorsque le délai expire, tous les canaux sont fermés. Notez que ce délai « global » ne peut pas être exprimé à l’aide de caractères génériques et qu’il doit donc être spécifié explicitement.

Les noms de type de canal comprennent :

Connexions ouvertes vers ssh-agent(1).
, direct-streamlocal@openssh.com
Connexions TCP ou socket Unix (respectivement) ouvertes qui ont été établies depuis une redirection locale de ssh(1), c’est-à-dire à l’aide de LocalForward ou DynamicForward.
, forwarded-streamlocal@openssh.com
Connexions TCP ou socket Unix (respectivement) ouvertes qui ont été établies vers un démon sshd(8) en écoute au nom d’une redirection distante de ssh(1), c’est-à-dire à l’aide de RemoteForward.
La session interactive principale comprenant la session de l’interpréteur de commande, l’exécution de commande, scp(1), sftp(1), etc.
Les connexions ouvertes à l’aide de TunnelForward.
Les sessions de redirections de X11 ouvertes.

Notez que dans tous les cas ci-dessus, fermer une session inactive ne garantit pas que toutes les ressources associées à la session seront supprimées ; par exemple, les processus de l’interpréteur de commande ou les clients X11 liés à la session pourront continuer leur exécution.

En outre, fermer une session ou un canal inactif ne ferme pas nécessairement la connexion SSH et n’empêche pas un client de demander l’ouverture d’un autre canal du même type. En particulier, fermer une session de redirection inactive n’empêche pas la création subséquente d’une autre redirection identique.

Par défaut, aucun canal de quelque type que ce soit ne sera fermé pour inactivité.

Cette option permet de spécifier le chemin d’un répertoire à passer à chroot(2) après l’authentification. Au démarrage de la session, sshd(8) vérifie que tous les composants du chemin sont des répertoires qui sont la propriété du superutilisateur et non accessibles en écriture pour le groupe ou les autres. Après passage en chroot, sshd(8) définit le répertoire personnel de l’utilisateur comme répertoire de travail. Les arguments de ChrootDirectory acceptent les symboles décrits dans la section SYMBOLES.

Le répertoire ChrootDirectory doit contenir les répertoires et fichiers nécessaires pour prendre en charge la session de l’utilisateur. Pour une session interactive, cela comprend au moins un interpréteur de commande, en général sh(1) et des nœuds /dev de base tels que les dispositifs null(4), zero(4), stdin(4), stdout(4), stderr(4) et tty(4). Pour les sessions de transfert de fichiers utilisant SFTP, aucune configuration additionnelle de l’environnement n’est nécessaire si l’on utilise le serveur sftp interne, bien que sur certains systèmes d’exploitation, les sessions qui utilisent la journalisation puissent nécessiter /dev/log à l’intérieur du répertoire de chroot (voir sftp-server(8) pour les détails).

Pour la sécurité, il est très important que l’arborescence du répertoire ne puisse pas être modifiée par d’autres processus sur le système (en particulier ceux qui se trouvent en dehors du « bac à sable »). Un mauvaise configuration peut induire des environnements non sécurisés que sshd(8) ne pourra pas détecter.

L’argument par défaut est none, indiquant de ne pas passer en chroot(2).

Cette option permet de spécifier les algorithmes de chiffrement autorisés. Plusieurs algorithmes de chiffrement peuvent être spécifiés en les séparant par des virgules. Si la liste spécifiée commence par un caractère « + », les algorithmes qu’elle contient seront ajoutés à la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caractère « - », les algorithmes qu’elle contient (pouvant contenir des caractères génériques) seront supprimés de la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caret « ^ », les algorithmes qu’elle contient seront ajoutés au début de la liste par défaut.

Les algorithmes de chiffrement pris en charge sont :

  • 3des-cbc
  • aes128-cbc
  • aes192-cbc
  • aes256-cbc
  • aes128-ctr
  • aes192-ctr
  • aes256-ctr
  • aes128-gcm@openssh.com
  • aes256-gcm@openssh.com
  • chacha20-poly1305@openssh.com

La liste par défaut est :

chacha20-poly1305@openssh.com,
aes128-ctr,aes192-ctr,aes256-ctr,
aes128-gcm@openssh.com,aes256-gcm@openssh.com

La liste des algorithmes de chiffrement disponibles peut aussi être obtenue en utilisant la commande « ssh -Q cipher ».

Cette option permet de définir le nombre de messages de rappel au client qui peuvent être envoyés sans que sshd(8) reçoive de message en retour du client. Si cette limite est atteinte alors que des messages de rappel au client sont envoyés, sshd déconnectera le client et fermera la session. Il est important de noter que l’utilisation de messages de rappel au client est très différente de TCPKeepAlive. Les messages de rappel au client sont envoyés par le canal chiffré et ne sont donc pas falsifiables. L’option « keepalive » de TCP activée par TCPKeepAlive peut être compromise. Le mécanisme de rappel au client s’avère utile lorsque le client ou le serveur ont besoin d’être informés quand une connexion ne répond plus.

La valeur par défaut est 3. Si ClientAliveInterval est défini à 15 et si ClientAliveCountMax conserve sa valeur par défaut de 3, les clients SSH qui ne répondent pas seront déconnectés après approximativement 45 secondes. Définir ClientAliveCountMax à zéro désactive la fermeture des connexions inactives.

Cette option permet de définir un délai en secondes après lequel, si aucune donnée n'est reçue de la part du client, sshd(8) enverra un message par le canal chiffré pour demander une réponse au client. La valeur par défaut est 0, ce qui signifie qu’aucun message de rappel ne sera envoyé au client.
Cette option permet d’indiquer si la compression est activée après une authentification réussie de l’utilisateur. L’argument doit être yes, delayed (un équivalent hérité de yes) ou no. La valeur par défaut est yes.
Cette option permet de spécifier si le suffixe de version supplémentaire spécifié pour la distribution doit être inclus au cours de la négociation initiale du protocole. La valeur par défaut est yes.
Cette option peut être suivie d'une liste de motifs de nom de groupe séparés par des espaces. Les utilisateurs dont le groupe principal ou les groupes secondaires correspondent à un des motifs ne sont pas autorisés à se connecter. Seuls les noms de groupe sont valables ; les identifiants numériques de groupe ne sont pas reconnus. Par défaut, tous les groupes sont autorisés à se connecter. Les directives de groupe allow/deny sont traitées dans l’ordre suivant : DenyGroups, AllowGroups.

Voir la section MOTIFS dans ssh_config(5) pour plus d’informations à propos des motifs. Cette option peut apparaître plusieurs fois dans sshd_config, chaque instance s’ajoutant à la liste.

Cette option peut être suivie d'une liste de motifs de nom d'utilisateur séparés par des espaces. Les utilisateurs dont le nom correspond à un des motifs ne sont pas autorisés à se connecter. Seuls les noms d'utilisateur sont valables ; les identifiants numériques d'utilisateur ne sont pas reconnus. Par défaut, tous les utilisateurs sont autorisés à se connecter. Si le motif est de la forme UTILISATEUR@HÔTE, UTILISATEUR et HÔTE sont vérifiés séparément, et la connexion est restreinte à certains utilisateurs de certains hôtes. Le critère HÔTE peut aussi contenir des correspondances d’adresse au format CIDR adresse/taille_de_masque. Les directives allow/deny d’utilisateur sont traitées dans l’ordre suivant : DenyUsers, AllowUsers.

Voir la section MOTIFS dans ssh_config(5) pour plus d’informations à propos des motifs. Cette option peut apparaître plusieurs fois dans sshd_config, chaque instance s’ajoutant à la liste.

Cette option permet de désactiver toutes les redirections, y compris X11, ssh-agent(1), TCP et StreamLocal. Elle outrepasse toute autre option concernant une redirection et peut simplifier les configurations restreintes.
Cette option permet d’écrire un fichier temporaire contenant une liste des méthodes d’authentification et des données d’authentification publiques (comme les clés) utilisées pour authentifier l’utilisateur. L’emplacement du fichier est indiqué à la session utilisateur à l’aide de la variable d’environnement SSH_USER_AUTH. La valeur par défaut est no.
Cette option permet de spécifier l’algorithme de hachage utilisé pour la journalisation des empreintes de clé. Les arguments valables sont md5 et sha256. La valeur par défaut est sha256.
Cette option permet de forcer l’exécution de la commande spécifiée par ForceCommand en ignorant toute commande fournie par le client et ~/.ssh/rc si présent. La commande est invoquée en utilisant l’interpréteur de commande de connexion de l’utilisateur avec l’option -c. Cette option s’applique à l’exécution de l’interpréteur de commande, de la commande ou du sous-système. Elle s’avère particulièrement utile dans un bloc Match. La commande initialement fournie par le client est disponible dans la variable d’environnement SSH_ORIGINAL_COMMAND. Spécifier la commande internal-sftp forcera l’utilisation d’un serveur SFTP interne au processus qui ne nécessite pas de fichier support lorsqu’il est utilisé avec ChrootDirectory. La valeur par défaut est none.
Cette option permet de spécifier si les machines distantes sont autorisées à se connecter à des ports redirigés pour le client. Par défaut, sshd(8) branche les redirections de port distant à l'adresse de bouclage (loopback address). Cela empêche les autres machines distantes de se connecter aux ports redirigés. GatewayPorts peut être utilisé pour indiquer que sshd(8) doit permettre le branchement des redirections de port distant à des adresses autres que loopback, et par conséquent autoriser les autres machines à se connecter. L’argument peut être no pour forcer les redirections de port distant à n’être disponibles que pour l’hôte local, yes pour forcer les redirections de port distant à se lier à l’adresse avec caractères génériques ou clientspecified pour permettre au client de sélectionner l’adresse à laquelle la redirection est liée. La valeur par défaut est no.
Cette option permet de spécifier si l’authentification utilisateur basée sur GSSAPI est autorisée. La valeur par défaut est no.
Cette option permet d’indiquer si le cache des données d’identification des utilisateurs doit être automatiquement vidé à la déconnexion. La valeur par défaut est yes.
Cette option permet de spécifier si l’échange de clés basé sur GSSAPI est autorisé. L’échange de clés GSSAPI ne s’appuie pas sur les clés de ssh pour vérifier l’identité de l’hôte. La valeur par défaut est no.
Cette option permet d’indiquer si l’on doit être strict quant à l’identité de l’accepteur GSSAPI auprès duquel le client s’authentifie. Si elle est définie à yes, le client doit s’authentifier auprès du service « host » avec le nom d’hôte actuel. Si elle est définie à no, le client peut s’authentifier auprès de n'importe quelle clé de service stockée dans le magasin par défaut de la machine. Cette possibilité facilite les opérations sur les machines multi-réseaux. La valeur par défaut est yes.
Cette option permet d’indiquer si les données d’identification GSSAPI de l’utilisateur doivent être mises à jour après un renouvellement des clés de connexion réussi. Cette option peut être utilisée pour des données d’identification acceptées renouvelées ou mises à jour en provenance d’un client compatible. La valeur par défaut est no.

Pour que cette option fonctionne, l’option GSSAPIKeyExchange doit être activée au niveau du serveur et aussi utilisée par le client.

Cette option permet de spécifier la liste des algorithmes d’échange de clés acceptés par l’échange de clés GSSAPI. Les valeurs possibles sont :
gss-gex-sha1-,
gss-group1-sha1-,
gss-group14-sha1-,
gss-group14-sha256-,
gss-group16-sha512-,
gss-nistp256-sha256-,
gss-curve25519-sha256-

La liste par défaut est « gss-group14-sha256-,gss-group16-sha512-,gss-nistp256-sha256-,gss-curve25519-sha256-,gss-gex-sha1-,gss-group14-sha1- ». Cette option ne s’applique qu’aux connexions qui utilisent GSSAPI.

Cette option permet de spécifier les algorithmes de signature qui seront acceptés pour une authentification basée sur l’hôte sous la forme d’une liste de motifs séparés par des virgules. Si la liste spécifiée commence par un caractère « + », les algorithmes de signature qu’elle contient seront ajoutés à la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caractère « - », les algorithmes de signature qu’elle contient (pouvant contenir des caractères génériques) seront supprimés de la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caret « ^ », les algorithmes de signature qu’elle contient seront ajoutés au début de la liste par défaut. La liste par défaut est :
ssh-ed25519-cert-v01@openssh.com,
ecdsa-sha2-nistp256-cert-v01@openssh.com,
ecdsa-sha2-nistp384-cert-v01@openssh.com,
ecdsa-sha2-nistp521-cert-v01@openssh.com,
sk-ssh-ed25519-cert-v01@openssh.com,
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
rsa-sha2-512-cert-v01@openssh.com,
rsa-sha2-256-cert-v01@openssh.com,
ssh-ed25519,
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
sk-ssh-ed25519@openssh.com,
sk-ecdsa-sha2-nistp256@openssh.com,
rsa-sha2-512,rsa-sha2-256

La liste des algorithmes de signature disponibles peut aussi être obtenue en utilisant la commande « ssh -Q HostbasedAcceptedAlgorithms ». Cette option se nommait par le passé HostbasedAcceptedKeyTypes.

Cette option permet de spécifier si l’authentification par rhosts ou /etc/hosts.equiv conjointement avec une authentification de machine cliente par clé publique réussie est autorisée (authentification basée sur l’hôte). La valeur par défaut est no.
Cette option permet d’indiquer si le serveur essaiera d’effectuer une recherche de nom inverse lors d’une comparaison de nom dans les fichiers ~/.shosts, ~/.rhosts et /etc/hosts.equiv pendant une authentification basée sur l’hôte. Si elle est définie à yes, sshd(8) va utiliser le nom fourni par le client plutôt que de tenter lui-même de résoudre le nom à partir de la connexion TCP. La valeur par défaut est no.
Cette option permet de spécifier un fichier contenant un certificat d’hôte public. La clé publique du certificat doit correspondre à une clé d’hôte privée déjà spécifiée à l’aide de HostKey. Par défaut, sshd(8) ne charge aucun certificat.
Cette option permet de spécifier un fichier contenant une clef d’hôte privée utilisée par SSH. 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.

Notez que sshd(8) refusera d'utiliser un fichier accessible au groupe ou aux autres et que l’option HostKeyAlgorithms restreint la liste des clés réellement utilisées par sshd(8).

Il est possible d’avoir plusieurs fichiers de clé d’hôte. Il est aussi possible de spécifier des fichiers de clé d’hôte publique à la place. Dans ce cas, les opérations sur la clé privée seront déléguées à un agent ssh-agent(1).

Cette option permet d’identifier le socket de domaine Unix utilisé pour communiquer avec un agent qui a accès aux clés d’hôte privées. Si l’argument est « SSH_AUTH_SOCK », l’emplacement du socket sera lu depuis la variable d’environnement SSH_AUTH_SOCK.
Cette option permet d’indiquer les algorithmes de signature de clé d’hôte qu’offre le serveur. La valeur par défaut de cette option est :
ssh-ed25519-cert-v01@openssh.com,
ecdsa-sha2-nistp256-cert-v01@openssh.com,
ecdsa-sha2-nistp384-cert-v01@openssh.com,
ecdsa-sha2-nistp521-cert-v01@openssh.com,
sk-ssh-ed25519-cert-v01@openssh.com,
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
rsa-sha2-512-cert-v01@openssh.com,
rsa-sha2-256-cert-v01@openssh.com,
ssh-ed25519,
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
sk-ssh-ed25519@openssh.com,
sk-ecdsa-sha2-nistp256@openssh.com,
rsa-sha2-512,rsa-sha2-256

La liste des algorithmes de signature disponibles peut aussi être obtenue en utilisant la commande « ssh -Q HostKeyAlgorithms ».

Cette option permet de spécifier si les fichiers .rhosts et .shosts propres à un utilisateur doivent être ignorés lors d’une authentification basée sur l’hôte. Les fichiers globaux du système /etc/hosts.equiv et /etc/ssh/shosts.equiv seront quant à eux toujours utilisés, et cela quelle que soit la valeur de cette option.

Les valeurs acceptées sont yes (la valeur par défaut) pour ignorer tous les fichiers propres aux utilisateurs, shosts-only pour autoriser l’utilisation de .shosts mais ignorer .rhosts ou no pour autoriser l’utilisation de .shosts et rhosts.

Cette option permet de spécifier si sshd(8) doit ignorer le fichier ~/.ssh/known_hosts de l’utilisateur lors des authentifications basées sur l’hôte pour n’utiliser que le fichier des hôtes connus global du système /etc/ssh/ssh_known_hosts. La valeur par défaut est no.
Cette option permet d’inclure le(s) fichier(s) de configuration spécifié(s). Plusieurs noms de chemin peuvent être spécifiés, chacun d’entre eux pouvant contenir des caractères génériques glob(7), et seront développés et traités selon l’ordre lexical. Les fichiers qui ne sont pas spécifiés à l’aide d’un chemin absolu sont supposés être situés dans /etc/ssh. Une directive Include peut être placée dans un bloc Match afin d’effectuer une inclusion conditionnelle.
Cette option permet de spécifier le type de service IPv4 ou la classe DSCP pour la connexion. Les valeurs acceptées sont af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, ef, le, lowdelay, throughput, reliability, une valeur numérique ou none pour utiliser la valeur par défaut du système d’exploitation. Cette option peut prendre un ou deux arguments séparés par un blanc. Si un seul argument est spécifié, il est utilisé en tant que classe du paquet sans condition. Si deux arguments sont spécifiés, le premier est automatiquement sélectionné pour les sessions interactives et le second pour les sessions non interactives. La valeur par défaut est lowdelay pour les sessions interactives et throughput pour les sessions non interactives.
Cette option permet de spécifier si l’authentification par saisie au clavier est autorisée. La valeur par défaut est yes. L’argument doit être yes ou no. ChallengeResponseAuthentication est un alias obsolète de cette option.
Cette option permet de spécifier si le mot de passe fourni par l’utilisateur pour l’authentification par mot de passe sera validé à l’aide du KDC (Centre de Distribution de Clé) Kerberos. Pour utiliser cette option, le serveur a besoin d'un fichier de clé servtab Kerberos qui autorise la vérification de l'identité du KDC. La valeur par défaut est no.
Si AFS est actif et si l’utilisateur possède un ticket (TGT) Kerberos 5, essayer d’obtenir un jeton AFS avant d’accéder au répertoire personnel de l’utilisateur. La valeur par défaut est no.
Si l'authentification par mot de passe à l’aide de Kerberos échoue, le mot de passe sera validé à l’aide de n'importe quel mécanisme additionnel local tel que /etc/passwd. La valeur par défaut est yes.
Cette option permet de spécifier si le fichier cache du ticket de l'utilisateur doit être automatiquement détruit à la déconnexion. La valeur par défaut est yes.
Cette option permet de spécifier les algorithmes d’échange de clés KEX (Key Exchange) autorisés que le serveur peut offrir aux clients. L’ordre de cette liste n’est pas important, car c’est le client qui spécifie un ordre de préférence. Plusieurs algorithmes peuvent être spécifiés en les séparant par des virgules.

Si la liste spécifiée commence par un caractère « + », les algorithmes qu’elle contient seront ajoutés à la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caractère « - », les algorithmes qu’elle contient (pouvant contenir des caractères génériques) seront supprimés de la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caret « ^ », les algorithmes qu’elle contient seront ajoutés au début de la liste par défaut.

Les algorithmes de chiffrement pris en charge sont :

  • curve25519-sha256
  • curve25519-sha256@libssh.org
  • diffie-hellman-group1-sha1
  • diffie-hellman-group14-sha1
  • diffie-hellman-group14-sha256
  • diffie-hellman-group16-sha512
  • diffie-hellman-group18-sha512
  • diffie-hellman-group-exchange-sha1
  • diffie-hellman-group-exchange-sha256
  • ecdh-sha2-nistp256
  • ecdh-sha2-nistp384
  • ecdh-sha2-nistp521
  • mlkem768x25519-sha256
  • sntrup761x25519-sha512
  • sntrup761x25519-sha512@openssh.com

La liste par défaut est :

sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,
mlkem768x25519-sha256,
curve25519-sha256,curve25519-sha256@libssh.org,
ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
diffie-hellman-group-exchange-sha256,
diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,
diffie-hellman-group14-sha256

La liste des algorithmes d’échange de clés pris en charge peut aussi être obtenue en utilisant la commande « ssh -Q KexAlgorithms ».

Cette option permet de spécifier les adresses locales d'écoute sur lesquelles sshd(8) doit attendre les connexions. On peut utiliser les formes suivantes :

Si port n’est pas spécifié, sshd va écouter sur l’adresse et tous les ports spécifiés à l’aide de l’option Port. Par défaut, sshd écoute sur toutes les adresses locales. Il est possible de spécifier plusieurs fois l’options ListenAddress.

Le serveur se déconnecte après ce délai si l'utilisateur n’a pas réussi à se connecter. Si la valeur est 0, il n'y a aucune limite de temps. La valeur par défaut est 120 (secondes).
Cette option permet d’indiquer le niveau de prolixité utilisé lors de la journalisation des messages en provenance de sshd(8). Les valeurs possibles sont : QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 et DEBUG3. La valeur par défaut est INFO. DEBUG et DEBUG1 sont équivalents. DEBUG2 et DEBUG3 indiquent des niveaux de débogage supérieurs pour la sortie. Le niveau de journalisation DEBUG viole la vie privée des utilisateurs et n’est pas recommandé.
Specify one or more overrides to LogLevel. An override consists of one or more pattern lists that matches the source file, function and line number to force detailed logging for. For example, an override pattern of:
kex.c:*:1000,*:kex_exchange_identification():*,packet.c:*

activerait la journalisation détaillée pour la ligne 1000 de kex.c, tout le contenu de la fonction () et tout le code du fichier packet.c. Cette option est destinée au débogage et aucun outrepassement n’est activé par défaut.

Cette option permet de spécifier les algorithmes MAC (code d'authentification de message) disponibles. L'algorithme MAC est utilisé pour la protection de l'intégrité des données. Plusieurs algorithmes peuvent être spécifiés en les séparant par des virgules. Si la liste spécifiée commence par un caractère « + », les algorithmes qu’elle contient seront ajoutés à la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caractère « - », les algorithmes qu’elle contient (pouvant contenir des caractères génériques) seront supprimés de la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caret « ^ », les algorithmes qu’elle contient seront ajoutés au début de la liste par défaut.

Les algorithmes qui contiennent « -etm » calculent le MAC après chiffrement (encrypt-then-mac). Ils sont considérés comme plus sûrs et leur utilisation est recommandée. Les algorithmes MAC pris en charge sont :

  • hmac-md5
  • hmac-md5-96
  • hmac-sha1
  • hmac-sha1-96
  • hmac-sha2-256
  • hmac-sha2-512
  • umac-64@openssh.com
  • umac-128@openssh.com
  • hmac-md5-etm@openssh.com
  • hmac-md5-96-etm@openssh.com
  • hmac-sha1-etm@openssh.com
  • hmac-sha1-96-etm@openssh.com
  • hmac-sha2-256-etm@openssh.com
  • hmac-sha2-512-etm@openssh.com
  • umac-64-etm@openssh.com
  • umac-128-etm@openssh.com

La liste par défaut est :

umac-64-etm@openssh.com,umac-128-etm@openssh.com,
hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,
hmac-sha1-etm@openssh.com,
umac-64@openssh.com,umac-128@openssh.com,
hmac-sha2-256,hmac-sha2-512,hmac-sha1

La liste des algorithmes MAC disponibles peut aussi être obtenue en utilisant la commande « ssh -Q mac ».

Cette option introduit un bloc conditionnel. Si tous les critères de la ligne du Match sont respectés, les options des lignes suivantes outrepassent celles définies dans la partie globale du fichier de configuration jusqu’à ce qu’on atteigne une autre ligne Match ou la fin du fichier. Si une option apparaît dans plusieurs blocs Match dont les critères sont respectés, seule la première instance de l’option s’applique.

The arguments to Match are one or more criteria-pattern pairs or one of the single token criteria: All, which matches all criteria, or Invalid-User, which matches when the requested user-name does not match any known account. The available criteria are User, Group, Host, LocalAddress, LocalPort, and Address.

Les motifs de correspondance peuvent se composer d’entrées simples ou de listes de motifs séparés par des virgules et peuvent utiliser les caractères génériques et les opérateurs de négation décrits dans la section MOTIFS de ssh_config(5).

Les motifs d’un critère Address peuvent aussi contenir des groupes d’adresses au format CIDR adresse/taille_de_masque comme 192.0.2.0/24 ou 2001:db8::/32. Notez que la taille de masque spécifiée doit être cohérente avec l’adresse ; spécifier une taille de masque trop longue pour l’adresse ou une taille avec des bits définis dans cette partie hôte de l’adresse est une erreur. 192.0.2.0/33 et 192.0.2.0/8, respectivement, sont des exemples de cette erreur.

Only a subset of keywords may be used on the lines following a Match keyword. Available keywords are AcceptEnv, AllowAgentForwarding, AllowGroups, AllowStreamLocalForwarding, AllowTcpForwarding, AllowUsers, AuthenticationMethods, AuthorizedKeysCommand, AuthorizedKeysCommandUser, AuthorizedKeysFile, AuthorizedPrincipalsCommand, AuthorizedPrincipalsCommandUser, AuthorizedPrincipalsFile, Banner, CASignatureAlgorithms, ChannelTimeout, ChrootDirectory, ClientAliveCountMax, ClientAliveInterval, DenyGroups, DenyUsers, DisableForwarding, ExposeAuthInfo, ForceCommand, GatewayPorts, GSSAPIAuthentication, HostbasedAcceptedAlgorithms, HostbasedAuthentication, HostbasedUsesNameFromPacketOnly, IgnoreRhosts, Include, IPQoS, KbdInteractiveAuthentication, KerberosAuthentication, LogLevel, MaxAuthTries, MaxSessions, PAMServiceName, PasswordAuthentication, PermitEmptyPasswords, PermitListen, PermitOpen, PermitRootLogin, PermitTTY, PermitTunnel, PermitUserRC, PubkeyAcceptedAlgorithms, PubkeyAuthentication, PubkeyAuthOptions, RefuseConnection, RekeyLimit, RevokedKeys, SetEnv, StreamLocalBindMask, StreamLocalBindUnlink, TrustedUserCAKeys, UnusedConnectionTimeout, X11DisplayOffset, X11Forwarding and X11UseLocalhost.

Cette option permet de spécifier le nombre maximal de tentatives d’authentification par connexion. Lorsque le nombre d’échecs atteint la moitié de cette valeur, les échecs suivants sont journalisés. La valeur par défaut est 6.
Cette option permet de spécifier le nombre maximal autorisé de sessions d’interpréteur de commande, de connexion ou de sous-système (par exemple sftp) ouvertes par connexion réseau. Les clients qui prennent en charge le multiplexage de connexions peuvent établir plusieurs sessions. Définir MaxSessions à 1 désactive à proprement parler le multiplexage de sessions, alors que le définir à 0 interdit toute session d’interpréteur de commande, de connexion ou de sous-système tout en permettant la redirection. La valeur par défaut est 10.
Cette option permet de spécifier le nombre maximal de connexions simultanées non authentifiées au démon SSH. Les connexions supplémentaires seront rejetées jusqu’à ce que l’authentification réussisse ou que le délai de grâce défini à l'aide de l'option LoginGraceTime expire pour une connexion. La valeur par défaut est 10:30:100.

Une autre possibilité consiste à activer le rejet prématuré aléatoire en spécifiant un triplet « début:taux:total » (par exemple, « 10:30:60 »). sshd(8) va alors rejeter les tentatives de connexion avec une probabilité de « taux/100 » (30 %) s'il y a « début » (10) connexions non authentifiées en cours. La probabilité augmente linéairement et toutes les tentatives de connexion seront rejetées si le nombre de connexions non authentifiées atteint « total » (60).

Cette option permet de spécifier le fichier moduli(5) qui contient les groupes Diffie-Hellman utilisés pour les méthodes d’échange de clés « diffie-hellman-group-exchange-sha1 » et « diffie-hellman-group-exchange-sha256 ». La valeur par défaut est /etc/ssh/moduli.
Cette option permet de spécifier le nom de service utilisé pour l’authentification, l’autorisation et le contrôle de session PAM (Pluggable Authentication Modules) lorsque UsePAM est activé. La valeur par défaut est sshd.
Cette option permet de spécifier si l'authentification par mot de passe est autorisée. La valeur par défaut est yes.
Quand l'authentification par mot de passe est autorisée, cette option permet de spécifier si le serveur autorise les connexions à des comptes dont les mots de passe sont des chaînes de caractères vides. La valeur par défaut est no.
Cette option permet de spécifier les adresses/ports sur lesquels une redirection de port TCP distant peut écouter. La spécification de permission d’écoute peut être sous une des formes suivantes :

Plusieurs permissions peuvent être spécifiées en les séparant par des blancs. Si l’argument est any, toutes les restrictions sont supprimées et toutes les requêtes d’écoute sont autorisées. Si l’argument est none, toutes les requêtes d’écoute sont interdites. Le nom d’hôte peut contenir des caractères génériques comme décrit dans la section MOTIFS de ssh_config(5). Si le numéro de port est remplacé par le caractère générique « * », tous les ports sont autorisés. Par défaut, toutes les requêtes d’écoute de redirection de port sont autorisées. Notez que l’option GatewayPorts peut par la suite restreindre les adresses qui peuvent être écoutées. Notez aussi que ssh(1) demandera « localhost » comme hôte d’écoute si aucun hôte d’écoute n’a été spécifiquement demandé, et que ce nom est traité différemment des adresses d'hôte local explicites « 127.0.0.1 » et « ::1 ».

Cette option permet de spécifier les destinations vers lesquelles la redirection de port TCP est autorisée. La spécification de redirection doit être sous une des formes suivantes :

Plusieurs redirections peuvent être spécifiées en les séparant par des blancs. Si l’argument est any, toutes les restrictions sont supprimées et toutes les requêtes de redirection sont autorisées. Si l’argument est none, toutes les requêtes de redirection sont interdites. Si l’hôte ou le numéro de port est remplacé par le caractère générique « * », tous les hôtes ou ports, respectivement, sont autorisés. Sinon, aucune correspondance de motif ou de recherche d’adresse n’est effectuée pour les noms fournis. Par défaut, toutes les requêtes de redirection de port sont autorisées.

Cette option permet de spécifier si l’utilisateur root peut se connecter en utilisant ssh(1). L'argument doit être yes, prohibit-password, forced-commands-only ou no. La valeur par défaut est prohibit-password..

Si cette option est définie à prohibit-password (ou son alias obsolète without-password), l'authentification par mot de passe et interaction au clavier est désactivée pour l’utilisateur root.

Si cette option est définie à forced-commands-only, les connexions de l’utilisateur root sont autorisées avec une authentification par clé publique, mais seulement si l'option command a été spécifiée (ce qui peut être utile pour effectuer des sauvegardes à distance même si les connexions de l’utilisateur root sont normalement interdites). Toutes les autres méthodes d'authentification sont désactivées pour l’utilisateur root.

Si cette option est définie à no, l’utilisateur root n'est pas autorisé à se connecter.

Cette option permet de spécifier si l’allocation de terminal pty(4) est autorisée. La valeur par défaut est yes.
Cette option permet de spécifier si la redirection de dispositif tun(4) est autorisée. L’argument doit être yes, point-to-point (couche 3), ethernet (couche 2) ou no. Spécifier yes revient à autoriser point-to-point et ethernet. La valeur par défaut est no.

Indépendamment de cette définition, les permissions du dispositif tun(4) sélectionné doivent accorder l’autorisation d’accès à l’utilisateur.

Cette option permet de spécifier si les options environment= de ~/.ssh/authorized_keys et le fichier ~/.ssh/environment seront traités par sshd(8). L’argument doit être yes, no ou une liste de motifs indiquant les noms de variable d’environnement à accepter (par exemple « LANG,LC_* »). La valeur par défaut est no. Activer le traitement de l’environnement peut permettre aux utilisateurs de court-circuiter les restrictions d’accès dans certaines configurations utilisant des mécanismes comme LD_PRELOAD.
Cette option permet de spécifier si le fichier ~/.ssh/rc sera exécuté. La valeur par défaut est yes.
Cette option permet de spécifier le nombre de connexions non authentifiées permises depuis une adresse source donnée ou « none » pour n’imposer aucune limite. Cette limite s’applique en plus de MaxStartups, la valeur la plus basse des deux étant retenue. La valeur par défaut est no.
Cette option permet de spécifier le nombre de bits de l’adresse source qui sont regroupés pour appliquer les limites de PerSourceMaxStartups. Il est possible de spécifier la valeur pour IPv4 éventuellement suivie d’un deux-points « : » et de la valeur pour IPv6. La valeur par défaut est 32:128, ce qui signifie que chaque adresse est considérée individuellement.
Cette option permet de contrôler les pénalités à appliquer pour diverses conditions qui peuvent correspondre à une attaque sur sshd(8). Si une pénalité est appliquée à un client, son adresse source et toutes celles du même réseau (tel que défini par PerSourceNetBlockSize) feront l’objet d’un refus de connexion pendant un certain temps.

Une pénalité n’affecte pas les connexions simultanées en cours, mais plusieurs pénalités pour la même source et des connexions simultanées vont s’accumuler jusqu’à un maximum. Inversement, les pénalités ne sont appliquées qu’une fois un certain seuil de temps accumulé.

Penalties are enabled by default with the default settings listed below but may disabled using the no keyword. The defaults may be overridden by specifying one or more of the keywords below, separated by whitespace. All keywords accept arguments, e.g. "crash:2m".

Spécifier la durée pendant laquelle seront rejetés les clients qui ont causé un plantage de sshd(8) (par défaut 90 secondes).
Spécifier la durée pendant laquelle seront rejetés les clients qui se déconnectent après avoir effectué une ou plusieurs tentatives d’authentification infructueuses (par défaut 5 secondes).
Specifies how long to refuse clients that were administratively prohibited connection via the RefuseConnection option (default: 10s).
Spécifier la durée pendant laquelle seront rejetés les clients qui se déconnectent sans essayer de s’authentifier (par défaut 1 seconde). Ce délai doit être utilisé avec prudence sous peine de pénaliser des outils de recherche légitimes comme ssh-keyscan(1).
Specifies how long to refuse clients that fail to authenticate after LoginGraceTime (default: 10s).
Spécifier la durée maximale pendant laquelle l’accès sera refusé pour un intervalle d’adresses sources particulier (par défaut 10 minutes). Des pénalités répétées feront grimper la durée jusqu’à cette valeur maximale.
Spécifier la pénalité minimale qui doit être atteinte avant que l’application ne commence (par défaut 15 secondes).
, max-sources6:nombre
Spécifier le nombre maximal de plages d'adresses client IPv4 et IPv6 à suivre pour les pénalités (par défaut : 65 536 pour les deux).
Cette option permet de contrôler la manière dont le serveur se comporte lorsque max-sources4 ou max-sources6 sont dépassés. Il y a deux modes opératoires : deny-all qui rejette toutes les connexions entrantes autres que celles exemptées à l’aide de PerSourcePenaltyExemptList jusqu’à ce qu’une pénalité arrive à expiration, et permissive qui autorise de nouvelles connexions en supprimant les pénalités existantes plus tôt (le mode par défaut est permissive). Notez que les pénalités client inférieures au seuil min sont comptabilisées dans le nombre total de pénalités suivies. Les adresses IPv4 et IPv6 sont suivies séparément, si bien qu’un dépassement dans l’un n’affectera pas l’autre.
Cette option permet de spécifier un mode de dépassement différent pour les adresses IPv6. Par défaut, c’est le même mode de dépassement que celui défini pour IPv4 qui est utilisé.
Cette option permet de spécifier une liste, séparée par des virgules, d’adresses exemptes de pénalités. Cette liste peut contenir des caractères génériques et des intervalles au format CIDR adresse/taille_masque. Notez que la taille de masque fournie doit être cohérente avec l’adresse — il est erroné de spécifier une taille de masque trop grande pour l’adresse ou avec des bits positionnés dans la partie hôte de l’adresse (par exemple 192.0.2.0/33 et 192.0.2.0/8, respectivement). Par défaut, aucune adresse n’est exemptée.
Cette option permet de spécifier l'emplacement du fichier contenant l'identifiant du processus du démon de SSH ou none pour ne pas écrire ce fichier. La valeur par défaut est /run/sshd.pid.
Cette option permet de spécifier le numéro du port sur lequel écoute sshd(8). La valeur par défaut est 22. Cette option peut être spécifiée plusieurs fois. Voir aussi ListenAddress.
Cette option permet de spécifier si sshd(8) doit afficher la date et l'heure de la dernière connexion d’un utilisateur lorsque l’utilisateur se connecte en mode interactif. La valeur par défaut est yes.
Cette option permet de spécifier si sshd(8) doit afficher le contenu du fichier /etc/motd quand un utilisateur se connecte en mode interactif (sur certains systèmes, il est aussi affiché par l'interpréteur de commande ou le fichier /etc/profile ou équivalent). La valeur par défaut est yes.
Cette option permet de spécifier les algorithmes de signature qui seront acceptés pour une authentification par clé publique sous la forme d’une liste de motifs séparés par des virgules. Si la liste spécifiée commence par un caractère « + », les algorithmes de signature qu’elle contient seront ajoutés à la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caractère « - », les algorithmes de signature qu’elle contient (pouvant contenir des caractères génériques) seront supprimés de la liste par défaut au lieu de la remplacer. Si la liste spécifiée commence par un caret « ^ », les algorithmes de signature qu’elle contient seront ajoutés au début de la liste par défaut. La liste par défaut est :
ssh-ed25519-cert-v01@openssh.com,
ecdsa-sha2-nistp256-cert-v01@openssh.com,
ecdsa-sha2-nistp384-cert-v01@openssh.com,
ecdsa-sha2-nistp521-cert-v01@openssh.com,
sk-ssh-ed25519-cert-v01@openssh.com,
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
rsa-sha2-512-cert-v01@openssh.com,
rsa-sha2-256-cert-v01@openssh.com,
ssh-ed25519,
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
sk-ssh-ed25519@openssh.com,
sk-ecdsa-sha2-nistp256@openssh.com,
rsa-sha2-512,rsa-sha2-256

La liste des algorithmes de signature disponibles peut aussi être obtenue en utilisant la commande « ssh -Q PubkeyAcceptedAlgorithms ».

Cette option permet de définir une ou plusieurs options d’authentification par clé publique. Les mots-clés pris en charge sont : none (la valeur par défaut indiquant qu’aucune autre option n’est activée), touch-required et verify-required.

L’option touch-required fait que l’authentification par clé publique utilise un algorithme d’authentificateur FIDO (c’est-à-dire ecdsa-sk ou ed25519-sk) de façon à toujours imposer la signature pour attester qu’un utilisateur physiquement présent a confirmé explicitement l’authentification (en général en touchant l’authentificateur). Par défaut, sshd(8) impose la présence de l’utilisateur, sauf outrepassement à l’aide d’une option authorized_keys. L’option touch-required désactive cet outrepassement.

L’option verify-required impose qu’une signature de clé FIDO atteste que l’utilisateur a été vérifié, par exemple à l’aide d’un code PIN.

Les mots-clés touch-required ou verify-required n’ont aucun effet sur les autres types d’authentification par clé publique non-FIDO.

Cette option permet de spécifier si l’authentification par clé publique est autorisée. La valeur par défaut est yes.
Indicates that sshd(8) should unconditionally terminate the connection. Additionally, a refuseconnection penalty may be recorded against the source of the connection if PerSourcePenalties are enabled. This option is only really useful in a Match block.
Cette option permet de spécifier la quantité maximale de données qui peuvent être envoyées ou reçues, éventuellement suivie d’une durée maximale, avant que la clé de session ne soit renégociée. Le premier argument est spécifié en octets et peut posséder un suffixe « K », « M » ou « G » pour indiquer respectivement des kilo-octets, des méga-octets ou des giga-octets. La valeur par défaut se situe entre « 1 Go » et « 4 Go » en fonction de l’algorithme de chiffrement. Le second argument facultatif est spécifié en secondes et peut utiliser toutes les unités décrites dans la section FORMATS DE TEMPS. La valeur par défaut de RekeyLimit est default none, ce qui signifie que la renégociation de clé est effectuée après que la quantité de données par défaut de l’algorithme de chiffrement a été envoyée ou reçue, et qu’aucune renégociation de clé basée sur la durée n’est effectuée.
Cette option permet de spécifier la taille minimale de clé RSA (en bits) que sshd(8) acceptera. Les clés d’authentification d’utilisateur et basées sur l’hôte dont la taille est en dessous de cette limite seront refusées. La valeur par défaut est 1024  bits. Notez que la valeur spécifiée doit être supérieure ou égale à la valeur par défaut.
Cette option permet de spécifier l’emplacement du fichier des clés publiques révoquées ou none si on ne l’utilise pas. Les clés listées dans ce fichier seront refusées pour l’authentification par clé publique. Notez que si ce fichier n’est pas accessible en lecture, l’authentification par clé publique sera refusée pour tous les utilisateurs. Les clés peuvent être spécifiées à l’aide d’un fichier texte avec une clé par ligne, ou sous la forme d’une liste de révocations de clé OpenSSH (KRL) telle que générée par ssh-keygen(1). Pour plus d’informations à propos des KRL, voir la section LISTES DE RÉVOCATIONS DE CLÉ de ssh-keygen(1).
Cette option permet de spécifier le chemin d’une bibliothèque qui sera utilisée lors du chargement des clés hébergées par un authentificateur FIDO, outrepassant ainsi le comportement par défaut consistant à utiliser le support USB HID embarqué.
Cette option permet de spécifier une ou plusieurs variables d’environnement à définir dans les sessions enfant ouvertes par sshd(8), sous la forme « NOM=VALEUR ». La valeur de la variable d’environnement peut être entourée de guillemets droits (par exemple si elle contient des blancs). Les variables d’environnement définies à l’aide de SetEnv outrepassent l’environnement par défaut et toute variable spécifiée par l’utilisateur à l’aide de AcceptEnv ou PermitUserEnvironment.
Remplacer le chemin par défaut de l’exécutable sshd-session invoqué pour gérer chaque connexion. Le chemin par défaut est /usr/lib/openssh/sshd-session. Cette option est destinée à être utilisée dans les tests.
Cette option permet de définir le masque de mode de création de fichier (umask) à utiliser pour créer un fichier de socket de domaine Unix pour la redirection de port local ou distant. Cette option n’est utilisée que pour la redirection d’un port vers un fichier de socket de domaine Unix.

La valeur par défaut est 0177 qui crée un fichier de socket de domaine Unix qui n’est accessible en lecture et écriture que pour son propriétaire. Notez que tous les systèmes d’exploitation ne tiennent pas compte du mode de fichier pour les fichiers de socket de domaine Unix.

Cette option permet de spécifier si un fichier de socket de domaine Unix pour la redirection de port local ou distant doit être supprimé avant d’en créer un nouveau. Si le fichier de socket existe déjà et si StreamLocalBindUnlink n’est pas activée, sshd ne pourra pas rediriger le port vers le fichier de socket de domaine Unix. Cette option n’est utilisée que pour la redirection de port vers un fichier de socket de domaine Unix.

L’argument doit être yes ou no. La valeur par défaut est no.

Cette option permet de spécifier si sshd(8) doit vérifier les modes et le propriétaire des fichiers et du répertoire personnel de l'utilisateur avant d'accepter une connexion. C'est en général souhaitable, parce que les novices laissent parfois accidentellement leur répertoire ou leurs fichiers accessibles en écriture pour tout le monde. La valeur par défaut est yes. Notez que cette option ne s’applique pas à ChrootDirectory dont les permissions et propriétaire sont systématiquement vérifiés.
Cette option permet de configurer un sous-système externe (par exemple un démon de transfert de fichiers). Les arguments doivent être un nom de sous-système et une commande (avec arguments optionnels) à exécuter lors d'une requête à ce sous-système.

La commande sftp-server implémente le sous-système de transfert de fichiers SFTP.

La commande internal-sftp, quant à elle, implémente un serveur SFTP interne au processus, ce qui peut simplifier les configurations utilisant ChrootDirectory pour forcer une racine de système de fichiers différente sur les clients. Cette commande accepte les même arguments que sftp-server, et même si elle est interne au processus, les options telles que LogLevel ou SyslogFacility ne s’appliquent pas à elle et doivent être définies explicitement à l’aide d’arguments sur la ligne de commande.

Par défaut, aucun sous-système n’est défini.

Cette option permet d’indiquer le code de catégorie (« facility ») utilisé lors de la journalisation des messages du démon sshd(8). Les valeurs possibles sont : DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6 et LOCAL7. La valeur par défaut est AUTH.
Cette option permet de spécifier si le système doit envoyer des messages de rappel TCP à l’autre extrémité de la connexion. Si ces messages sont envoyés, la mort d’une connexion ou le plantage d’une des machines seront notifiés de manière appropriée. Cela signifie cependant que les connexions seront fermées si la route est momentanément interrompue, et cela indispose certains utilisateurs. À l’inverse, si les messages de rappel TCP ne sont pas envoyés, des sessions pourront rester indéfiniment bloquées sur le serveur en laissant des utilisateurs « fantômes » et en consommant des ressources du serveur.

La valeur par défaut est yes (envoyer les messages de rappel TCP), et le serveur saura alors si le réseau tombe ou si la machine du client se plante, ce qui permet d’éviter le blocage infini de sessions.

Pour désactiver l’envoi de messages de rappel TCP, cette option doit être définie à no.

Cette option avait pour nom par le passé KeepAlive.

Cette option permet de spécifier un fichier contenant les clés publiques d’autorités de certification considérées comme fiables pour signer des certificats utilisateur pour l’authentification, ou none pour ne pas utiliser un tel fichier. Chaque ligne du fichier contient une clé ; les lignes vides et les commentaires commençant par « # » sont autorisés. Si un certificat est présenté pour une authentification et si la clé de la CA qui l’a signé est enregistrée dans ce fichier, il pourra être utilisé pour l’authentification pour tout utilisateur faisant partie de la liste de « principals » du certificat. Notez que les certificats qui ne possèdent pas de liste de « principals » ne seront pas acceptés pour une authentification utilisant TrustedUserCAKeys (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 plus de détails à propos des certificats, voir la section CERTIFICATS de ssh-keygen(1).
Cette option permet de spécifier si et au bout de combien de temps sshd(8) doit fermer les connexions client sans canaux ouverts. Les canaux ouverts comprennent les interpréteurs de commande actifs, les exécutions de commande ou les sessions de sous-système, les réseaux connectés, les sockets, les redirections d’agent ou de X11. Les écouteurs de redirection tels que ceux du drapeau -R de ssh(1) ne sont pas considérés comme des canaux ouverts et n’empêchent pas le délai d’arriver à expiration. La valeur du délai est spécifiée en secondes ou peut utiliser toute unité décrite dans la section FORMATS DE TEMPS.

Notez que ce délai prend effet lorsque la connexion du client a terminé l’authentification de l’utilisateur, mais avant que le client ait l’opportunité d’ouvrir un canal. Il faut être prudent lorsqu’on utilise des valeurs de délai courtes, car elles ne donneront peut-être pas assez de temps au client pour demander l’ouverture de ses canaux avant la fermeture de la connexion.

La valeur par défaut est none et indique que les connexions sans canaux ouverts n’auront pas de délai d’expiration. Cette option s’avère utile en combinaison avec l’option ChannelTimeout.

Cette option permet de spécifier si sshd(8) doit rechercher le nom de l’hôte distant et vérifier que le nom d’hôte résolu pour l’adresse IP distante correspond en retour à exactement la même adresse IP.

Si cette option est définie à no (la valeur par défaut), les noms d’hôte ne pourront pas être utilisés dans les directives from, sshd_config, Match et Host de ~/.ssh/authorized_keys, mais seulement leurs adresses IP.

Cette option permet d’activer l’interface PAM (Pluggable Authentication Module). Si elle est définie à yes, l’authentification PAM sera activée en utilisant KbdInteractiveAuthentication et PasswordAuthentication en plus du traitement du module PAM de compte et de session pour tous les types d’authentification.

Étant donné que l’authentification PAM par interaction au clavier est en général équivalente à l’authentification par mot de passe, vous devez désactiver PasswordAuthentication ou KbdInteractiveAuthentication.

Si UsePAM est activée, vous ne pourrez pas exécuter sshd(8) en tant qu’utilisateur autre que le superutilisateur. La valeur par défaut est no.

Cette option permet de spécifier du texte additionnel à ajouter à la bannière de protocole SSH envoyée par le serveur lors d’une connexion. La valeur par défaut est none.
Cette option permet de spécifier le premier numéro de « display » disponible pour les redirections de X11 par sshd(8), ce qui empêche sshd d'interférer avec les vrais serveurs X11. La valeur par défaut est 10.
Cette option permet de spécifier si les redirections de X11 sont autorisées. L’argument doit être yes ou no. La valeur par défaut est no.

Lorsque la redirection de X11 est activée, le serveur et les affichages du client peuvent être davantage exposés si le « display » mandataire de sshd(8) est configuré pour écouter l'adresse générique (voir X11UseLocalhost), bien que cela ne soit pas le comportement par défaut. De plus, l’usurpation d’authentification ainsi que la vérification et la substitution des données d’authentification se produisent côté client. Le risque de sécurité induit par l’utilisation de la redirection de X11 est que le serveur d’affichage X11 du client soit exposé à une attaque lorsque le client SSH demande la redirection (voir les avertissements à propos de ForwardX11 dans ssh_config(5)). Un administrateur système peut vouloir protéger les clients qui pourraient s'exposer à des attaques en demandant involontairement une redirection de X11, ce qui pourrait justifier de définir cette option à no.

Notez que la désactivation des redirections de X11 n'empêche pas les utilisateurs de rediriger le trafic X11, puisqu’ils pourront toujours installer leurs propres redirecteurs.

Cette option permet de spécifier si sshd(8) doit lier le serveur de redirection de X11 à l'adresse de bouclage (loopback address) ou à l'adresse générique (wildcard address). Par défaut, sshd lie le serveur de redirection à l'adresse de bouclage et définit la partie nom d’hôte de la variable d'environnement DISPLAY à localhost, ce qui empêche des machines distantes de se connecter au « display » mandataire. Néanmoins, certains clients X11 anciens pourraient ne pas fonctionner avec cette configuration. Il est possible de définir X11UseLocalhost à no pour spécifier que le serveur de redirection doit être lié à l'adresse générique. L'argument doit être yes ou no. La valeur par défaut est yes.
Cette option permet de spécifier le chemin complet du programme xauth(1) ou none pour ne pas en utiliser. La valeur par défaut est /usr/bin/xauth.

FORMATS DE TEMPS

Les arguments de la ligne de commande et les options du fichier de configuration de sshd(8) qui spécifient des temps peuvent être exprimés en utilisant une séquence de la forme : temps[qualificateur], où temps est une valeur entière positive et qualificateur une des unités suivantes :

aucune
secondes
|
secondes
|
minutes
|
heures
|
jours
|
semaines

Tous les membres de la séquence sont additionnés les uns aux autres pour obtenir la valeur totale de temps.

Exemples de format de temps :

600
600 secondes (10 minutes)
10m
10 minutes
1h30m
1 heure 30 minutes (90 minutes)

SYMBOLES

Les arguments de certaines options peuvent utiliser des symboles qui sont développés à l’exécution :

%%
Le caractère littéral « % ».
%C
L’identification des extrémités de la connexion, contenant quatre valeurs séparées par des espaces : adresse client, numéro de port client, adresse serveur et numéro de port serveur.
%F
L’empreinte de la clé de la CA.
%f
L’empreinte de la clé ou du certificat.
%h
Le répertoire personnel de l’utilisateur.
%i
L’identifiant de la clé dans le certificat.
%K
La clé de la CA encodée en base64.
%k
La clé ou le certificat encodés en base64 pour l’authentification.
%s
Le numéro de série du certificat.
%T
Le type de la clé de la CA.
%t
Le type de la clé ou du certificat.
%U
L’UID numérique de l’utilisateur cible.
%u
Le nom d’utilisateur.

AuthorizedKeysCommand accepte les symboles %%, %C, %D, %f, %h, %k, %t, %U et %u.

AuthorizedKeysFile accepte les symboles %%, %h, %U et %u.

AuthorizedPrincipalsCommand accepte les symboles %%, %C, %D, %F, %f, %h, %i, %K, %k, %s, %T, %t, %U et %u.

AuthorizedPrincipalsFile accepte les symboles %%, %h, %U et %u.

ChrootDirectory accepte les symboles %%, %h, %U et %u.

FICHIERS

/etc/ssh/sshd_config
Ce fichier contient les données de configuration de sshd(8). Il ne doit être accessible en écriture que pour le superutilisateur, mais il est recommandé (bien que non nécessaire) qu'il soit accessible en lecture pour tous.

VOIR AUSSI

sftp-server(8), sshd(8)

AUTEURS

OpenSSH est dérivé de la version originale et libre 1.2.12 de ssh par Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt et Dug Song ont corrigé de nombreux bogues, réintroduit de 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 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

September 15, 2024 Debian