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_config5
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-agent1
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_config5
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_config5
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
Sx 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
Sx 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.
- 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
-
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
Sx 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 ».
- 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
Sx 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
-
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
Sx 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
Sx 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).
- 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
Sx 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-agent1.
- direct-tcpip , 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-tcpip , 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
- 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
Sx 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-server8
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-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 ».
- 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_config5
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_config5
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-agent1,
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-agent1.
- 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
-
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.
- 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 :
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 ».
- 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
- ListenAddress
-
nom_hôte : port
- ListenAddress
-
adresse_IPv4 : port
- ListenAddress
-
[nom_hôte | adresse : port
]
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
- 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
Fn 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
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
Sx MOTIFS
de
ssh_config5.
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
- 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_config5.
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.
Qq 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-keyscan1.
- 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
Sx 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-keygen1.
Pour plus d’informations à propos des KRL, voir la
section LISTES DE RÉVOCATIONS DE CLÉ de
ssh-keygen1.
- 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
- 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-keygen1.
- 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
Sx 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_config5).
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
Tous les membres de la séquence sont additionnés les uns aux autres pour
obtenir la valeur totale de temps.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Mt debian-l10n-french@lists.debian.org
Me .