SSHD_CONFIG(5)

NOM
sshd_config - Fichier 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) :

•   Include /etc/ssh/sshd_config.d/*.conf
•   KbdInteractiveAuthentication no
•   X11Forwarding yes
•   PrintMotd no
•   AcceptEnv LANG LC_* COLORTERM NO_COLOR
•   Subsystem sftp /usr/lib/openssh/sftp-server
•   UsePAM yes

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) :

AcceptEnv
    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.

AddressFamily
    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).

AllowAgentForwarding
    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.

AllowGroups
    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.

AllowStreamLocalForwarding
    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.

AllowTcpForwarding
    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.

AllowUsers
    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.

AuthenticationMethods
    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 ».

AuthorizedKeysCommand
    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é.

    The program should produce on standard output zero or more lines of authorized_keys output (see AUTHORIZED_KEYS in sshd(8)). AuthorizedKeysCommand is tried after the usual AuthorizedKeysFile files and will not be executed if a matching key is found there. By default, no AuthorizedKeysCommand is run.

AuthorizedKeysCommandUser
    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.

AuthorizedKeysFile
    Specifies the file that contains the public keys used for user authentication. The format is described in the AUTHORIZED_KEYS FILE FORMAT section of sshd(8). Arguments to AuthorizedKeysFile may include wildcards and accept the tokens described in the TOKENS section. After expansion, AuthorizedKeysFile is taken to be an absolute path or one relative to the user's home directory. Multiple files may be listed, separated by whitespace. Alternately this option may be set to none to skip checking for user keys in files. The default is ".ssh/authorized_keys .ssh/authorized_keys2".

AuthorizedPrincipalsCommand
    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.

AuthorizedPrincipalsCommandUser
    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.

AuthorizedPrincipalsFile
    Specifies a file that lists principal names that are accepted for certificate authentication. When using certificates signed by a key listed in TrustedUserCAKeys, this file lists names, one of which must appear in the certificate for it to be accepted for authentication. Names are listed one per line preceded by key options (as described in AUTHORIZED_KEYS FILE FORMAT in sshd(8)). Empty lines and comments starting with ‘#’ are ignored.

    Arguments to AuthorizedPrincipalsFile may include wildcards and accept the tokens described in the TOKENS section. After expansion, AuthorizedPrincipalsFile is taken to be an absolute path or one relative to the user's home directory. The default is none, i.e. not to use a principals file – in this case, the username of the user must appear in a certificate's principals list for it to be accepted.

    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).

Banner
    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.

CASignatureAlgorithms
    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.

ChannelTimeout
    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 :

    agent-connection
        Connexions ouvertes vers ssh-agent(1).

    direct-tcpip, direct-streamlocal@openssh.com
        Open TCP or Unix socket (respectively) connections that have been established from an ssh(1) local forwarding, i.e. LocalForward or DynamicForward.

    forwarded-tcpip, forwarded-streamlocal@openssh.com
        Open TCP or Unix socket (respectively) connections that have been established to an sshd(8) listening on behalf of an ssh(1) remote forwarding, i.e. RemoteForward.

    session
        La session interactive principale comprenant la session de l’interpréteur de commande, l’exécution de commande, scp(1), sftp(1), etc.

    tun-connection
        Les connexions ouvertes à l’aide de TunnelForward.

    x11-connection
        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é.

ChrootDirectory
    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).

Ciphers
    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-gcm@openssh.com,aes256-gcm@openssh.com,
        aes128-ctr,aes192-ctr,aes256-ctr

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

ClientAliveCountMax
    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.

ClientAliveInterval
    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.

Compression
    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.

DebianBanner
    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.

DenyGroups
    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.

DenyUsers
    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.

DisableForwarding
    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.

ExposeAuthInfo
    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.

FingerprintHash
    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.

ForceCommand
    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.

GatewayPorts
    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.

GSSAPIAuthentication
    Cette option permet de spécifier si l’authentification utilisateur basée sur GSSAPI est autorisée. La valeur par défaut est no.

GSSAPICleanupCredentials
    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.

GSSAPIKeyExchange
    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.

GSSAPIStrictAcceptorCheck
    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.

GSSAPIStoreCredentialsOnRekey
    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.

GSSAPIKexAlgorithms
    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.

HostbasedAcceptedAlgorithms
    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.

HostbasedAuthentication
    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.

HostbasedUsesNameFromPacketOnly
    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.

HostCertificate
    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.

HostKey
    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).

HostKeyAgent
    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.

HostKeyAlgorithms
    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 ».

IgnoreRhosts
    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.

IgnoreUserKnownHosts
    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.

Include
    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.

IPQoS
    Specifies the Differentiated Services Field Codepoint (DSCP) value for the connection. Accepted values are af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, ef, le, a numeric value, or none to use the operating system default. This option may take one or two arguments, separated by whitespace. If one argument is specified, it is used as the packet class unconditionally. If two values are specified, the first is automatically selected for interactive sessions and the second for non-interactive sessions. The default is ef (Expedited Forwarding) for interactive sessions and none (the operating system default) for non-interactive sessions.

KbdInteractiveAuthentication
    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.

KerberosAuthentication
    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.

KerberosGetAFSToken
    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.

KerberosOrLocalPasswd
    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.

KerberosTicketCleanup
    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.

KexAlgorithms
    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 :

        mlkem768x25519-sha256,
        sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,
        curve25519-sha256,curve25519-sha256@libssh.org,
        ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521

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

ListenAddress
    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 :

    ListenAddress nom_hôte|adresse [rdomain domaine]
    ListenAddress nom_hôte:port [rdomain domaine]
    ListenAddress adresse_IPv4:port [rdomain domaine]
    ListenAddress [nom_hôte|adresse]:port [rdomain domaine]

    The optional rdomain qualifier requests sshd(8) listen in an explicit routing domain. If port is not specified, sshd will listen on the address and all Port options specified. The default is to listen on all local addresses on the current default routing domain. Multiple ListenAddress options are permitted.

    On Linux, routing domains are implemented using Virtual Routing and Forwarding domains (VRFs); for more information, see ip-vrf(8).

LoginGraceTime
    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).

LogLevel
    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é.

LogVerbose
    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 kex_exchange_identification() 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.

MACs
    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 ».

Match
    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, Version, RDomain, and Address (with RDomain representing the routing domain on which the connection was received; see ip-vrf(8)).

    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.

    The Version keyword matches against the version string of sshd(8), for example “OpenSSH_10.0”.

    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.

MaxAuthTries
    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.

MaxSessions
    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.

MaxStartups
    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).

ModuliFile
    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.

PAMServiceName
    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.

PasswordAuthentication
    Cette option permet de spécifier si l'authentification par mot de passe est autorisée. La valeur par défaut est yes.

PermitEmptyPasswords
    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.

PermitListen
    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 :

    PermitListen port
    PermitListen hôte:port

    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 ».

PermitOpen
    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 :

    PermitOpen hôte:port
    PermitOpen adr_IPv4:port
    PermitOpen [adr_IPv6]:port

    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.

PermitRootLogin
    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.

PermitTTY
    Cette option permet de spécifier si l’allocation de terminal pty(4) est autorisée. La valeur par défaut est yes.

PermitTunnel
    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.

PermitUserEnvironment
    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.

PermitUserRC
    Cette option permet de spécifier si le fichier ~/.ssh/rc sera exécuté. La valeur par défaut est yes.

PerSourceMaxStartups
    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.

PerSourceNetBlockSize
    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.

PerSourcePenalties
    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".

    crash:durée
        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).

    authfail:durée
        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).

    refuseconnection:duration
        Specifies how long to refuse clients that were administratively prohibited connection via the RefuseConnection option (default: 10s).

    noauth:durée
        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).

    grace-exceeded:durée
        Specifies how long to refuse clients that fail to authenticate after LoginGraceTime (default: 10s).

    max:durée
        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.

    min:durée
        Spécifier la pénalité minimale qui doit être atteinte avant que l’application ne commence (par défaut 15 secondes).

    max-sources4:nombre, 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).

    overflow:mode
        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.

    overflow6:mode
        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é.

PerSourcePenaltyExemptList
    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.

PidFile
    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.

Port
    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.

PrintLastLog
    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.

PrintMotd
    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.

PubkeyAcceptedAlgorithms
    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 ».

PubkeyAuthOptions
    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.

PubkeyAuthentication
    Cette option permet de spécifier si l’authentification par clé publique est autorisée. La valeur par défaut est yes.

RefuseConnection
    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.

RekeyLimit
    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.

RequiredRSASize
    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.

RevokedKeys
    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).

SecurityKeyProvider
    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é.

SetEnv
    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.

SshdAuthPath
    Overrides the default path to the sshd-auth binary that is invoked to complete user authentication. The default is /usr/lib/openssh/sshd-auth. This option is intended for use by tests.

SshdSessionPath
    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.

StreamLocalBindMask
    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.

StreamLocalBindUnlink
    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.

StrictModes
    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.

Subsystem
    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.

SyslogFacility
    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.

TCPKeepAlive
    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.

TrustedUserCAKeys
    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).

UnusedConnectionTimeout
    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.

UseDNS
    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.

UsePAM
    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.

VersionAddendum
    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.

X11DisplayOffset
    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.

X11Forwarding
    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.

X11UseLocalhost
    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.

XAuthLocation
    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
s | S
    secondes
m | M
    minutes
h | H
    heures
d | D
    jours
w | W
    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.
%D  Le domaine de routage dans lequel la connexion entrante a été reçue.
%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
-nosplit 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: https://www.gnu.org/licenses/gpl-3.0.html concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.