Scroll to navigation

SSH_CONFIG(5) File Formats Manual SSH_CONFIG(5)

NOM

ssh_configfichiers de configuration du client SSH d'OpenSSH

SYNOPSIS

$HOME/.ssh/config
 
/etc/ssh/ssh_config
 

DESCRIPTION

ssh obtient ses données de configuration depuis les sources suivantes, et dans l'ordre suivant : la ligne de commande, le fichier de configuration de l'utilisateur ($HOME/.ssh/config), et enfin le fichier de configuration de la machine (/etc/ssh/ssh_config).

Pour chaque paramètre, on utilise la première valeur obtenue. Les fichiers de configuration peuvent contenir des sections de spécifications par machine (« Host »). Les paramètres contenus dans ces sections ne s'appliquent que pour les machines qui correspondent à un des motifs de la spécification. Le nom de machine est celui qui est passé sur la ligne de commande.

Comme c'est la première valeur de chaque qui est utilisée, on peut préciser des paramètres spécifiques aux machines vers le début du fichier, et les valeurs par défaut vers la fin.

Le fichier de configuration a le format suivant :

Les commentaires sont les lignes vides, et celles qui commencent par le caractère « # ».

Dans les autres cas, une ligne a le format « mot-clef arguments ». On peut séparer les options de configuration avec des espaces ou des espaces optionnels, et un seul caractère « = ». Ce dernier format est utile pour pouvoir se passer de l'espace lorsqu'on utilise l'option -o de ssh, scp et sftp.

Les mots-clef possibles et leur signification sont détaillés ci-après. Note : Les mots-clef ne sont pas sensibles à la casse, mais les valeurs le sont.

Restreint les déclarations suivantes (jusqu'au prochain mot-clef Host) aux machines qui correspondent aux motifs passés après le mot-clef. On peut utiliser les caractères joker « * » et « ? » dans les motifs. On peut utiliser un simple « * » pour définir des valeurs par défaut pour toutes les machines. La machine est l'argument hostname passé sur la ligne de commande, c'est-à-dire que le nom n'est pas converti en nom canonique avant la mise en correspondance.
Précise si on envoie des jetons AFS (AFS tokens) à la machine distante. L'argument pour ce mot-clef est « yes » ou « no ». Cette option ne s'applique qu'à la version 1 du protocole.
Si l'argument est « yes », il n'y a pas de demande de mots de passe. Utile dans des scripts ou autres traitements par lot, quand il n'y a pas d'utilisateur dans les parages pour saisir les mots de passe. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
Spécifie une interface réseau pour l'émission, si on se trouve sur une machine avec plusieurs interfaces réseau, ou avec des adresses aliasées. Note : Cette option ne fonctionne pas si le mot-clef UsePrivilegedPort a pour argument « yes ».
Spécifie si on utilise une méthode simulation/réponse (challenge response) pour l'authentification. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « yes ».
Si l'argument est « yes », ssh vérifie en plus l'adresse IP dans le fichier known_hosts. Ceci permet de vérifier si une clef de machine a changé à cause d'une falsification de DNS. Si l'argument est « no », la vérification n'est pas effectuée. Par défaut « yes ».
Spécifie le cryptage à utiliser pour la session, dans la version 1 du protocole. Actuellement, « blowfish », « 3des » et « des » sont supportés. des n'est supporté dans le client ssh que pour l'interopérabilité avec les anciennes implémentations de la version 1 du protocole qui ne supportent pas le cryptage 3des. Son utilisation est fortement déconseillée à cause de ses faiblesses crytographiques. Par défaut « 3des ».
Spécifie les cryptages à utiliser pour la version 2 du protocole par ordre de préférence. Les cryptages multiples sont séparés par des virgules. Par défaut :
  « aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,
    aes192-cbc,aes256-cbc ».
Spécifie que toutes les redirections de ports locaux, distants et dynamiques déclarés dans les fichiers de configuration ou sur la ligne de commande doivent être purgés. Ce mot clef est utilisé principalement sur la ligne de commande de ssh pour purger les redirections de ports définis dans les fichiers de configuration, et est automatiquement défini par scp(1) et sftp(1). L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
Spécifie si on utilise la compression. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
Spécifie un niveau de compression, si la compression est activée. L'argument est un entier de 1 (rapide) à 9 (meilleure compression, mais plus lent). Par défaut, le niveau est 6, ce qui est un bon compromis pour la plupart des applications. La signification de ces valeurs est identique à celle de gzip(1). Note : Cette option ne s'applique que pour la version 1 du protocole.
Spécifie le nombre de tentatives (une par seconde) avant d'abandonner. L'argument pour ce mot-clef doit être un entier. Utile pour des scripts si des connexions échouent parfois. Par défaut 1.
Spécifie un port TCP/IP à rediriger sur la machine locale par le tunnel sécurisé. Le protocole de l'application est ensuite utilisé pour déterminer le port pour se connecter depuis la machine distante. L'argument pour ce mot-clef est un numéro de port. Actuellement, le protocole SOCKS4 est supporté, et ssh se comporte comme un serveur SOCKS4. On peut spécifier des multiples redirections de ports, et on peut en ajouter sur la ligne de commande. Seul root a le droit de rediriger des ports privilégiés.
Définit un caractère d'échappement. Par défaut « ~ ». On peut aussi définir le caractère d'échappement sur la ligne de commande. L'argument pour ce mot-clef doit être un caractère unique « ^ » suivi d'une lettre, ou « none » pour désactiver complètement le caractère d'échappement (rend la connexion transparente pour les données binaires).
Spécifie si la connexion à l'agent d'authentification (s'il existe) doit être redirigée vers la machine distante. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
Spécifie si les connexions X11 sont redirigées automatiquement dans le tunnel sécurisé, et la variable d'environnement DISPLAY définie. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
Spécifie si des machines distantes sont autorisées à se connecter aux ports locaux redirigés. Par défaut ssh branche les ports redirigés sur une adresse de bouclage (loopback). Ceci évite que des machines distantes ne se connectent à des ports locaux redirigés. On peut utiliser le mot-clef GatewayPorts pour spécifier que ssh doit connecter les ports redirigés sur une adresse joker (wildcard), et par conséquent, autorise les machines distantes à se connecter aux ports redirigés. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
Spécifie un fichier de base de données globale des clefs de machines à utiliser à la place de /etc/ssh/ssh_known_hosts.
Spécifie si on tente d'utiliser l'authentification basées sur les rhosts avec l'authentification par clef publique. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». Cette option ne s'applique que pour la version 2 du protocole et est similaire à RhostsRSAAuthentication.
Spécifie l'algorithme de clef de machine pour la version 2 du protocole que le client souhaite utiliser par ordre de préférence. La valeur par défaut pour cette option est « ssh-rsa,ssh-dss ».
Spécifie un alias à utiliser au lieu du vrai nom de machine lors des recherches et des sauvegardes de clef de machine dans les fichiers de base de données des clefs de machine. Cette option est utile pour faire passer plusieurs connexions ssh par un tunnel sécurisé, ou si plusieurs serveurs tournent sur une seule machine.
Spécifie le vrai nom de la machine sur laquelle on se connecte. Utile pour spécifier des surnoms ou des diminutifs pour des machines. Par défaut : le nom passé sur la ligne de commande. Les adresses adresses IP (forme numérique, donc) sont aussi autorisées, à la fois sur la ligne de commande et par l'intermédiaire du mot-clef HostName.
Spécifie un fichier contenant la clef de l'utilisateur pour l'authentification RSA ou DSA. Par défaut $HOME/.ssh/identity pour la version 1 du protocole, et $HOME/.ssh/id_rsa et $HOME/.ssh/id_dsa pour la version 2 du protocole. En outre, toutes les identités déjà chargées dans l'agent d'authentification sont également utilisées pour l'authentification. Le nom de fichier peut débuter par le caractère « ~ » pour faire référence au répertoire de base (home directory) de l'utilisateur. On peut spécifier plusieurs fichiers d'identité dans les fichiers de configuration. Si c'est le cas, on essaie toutes les identités en séquence.
Spécifie si le système doit envoyer des messages TCP de maintien de la connexion à l'autre machine. Si on envoie ces messages, les ruptures de connexion ou les plantages d'une des machines sont correctement signalés. Sinon, des connexions peuvent être coupées si la route entre les deux machines est temporairement interrompue, et ça peut être gênant.

Par défaut « yes » (pour envoyer les messages de maintien de la connexion), et le client signale si des coupures de réseau on lieu, ou si la machine distante se plante. Cette fonction est importante pour les scripts, et de nombreux utilisateurs la veulent aussi.

Pour désactiver les messages de maintien de la connexion, il faut régler la valeur à « no ».

Spécifie si on utilise une authentification Kerberos. L'argument pour ce mot-clef est « yes » ou « no ».
Spécifie si on peut transférer un TGT Kerberos au serveur. Ceci ne fonctionne que si le serveur Kerberos est vraiment un kaserver AFS. L'argument pour ce mot-clef est « yes » ou « no ».
Spécifie qu'un port TCP/IP sur la machine locale est redirigé par le tunnel sécurisé vers un port particulier sur la machine distante. Le premier argument est un numéro de port, et le second est de la forme machine:port. Pour les adresse IPv6, on utilise la syntaxe : machine/port. On peut spécifier plusieurs redirections de port, et on peut en ajouter en les passant en paramètres sur la ligne de commande. Seul root peut rediriger des ports privilégiés.
Spécifie un niveau de verbosité pour enregistrer les messages de ssh. Les valeurs possibles sont : QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 et DEBUG3. Par défaut INFO. DEBUG et DEBUG1 sont équivalents. DEBUG2 et DEBUG3 spécifient les niveaux de verbosité les plus élevés pour la sortie.
Spécifie l'algorithme MAC (message authentication code) par ordre de préférence. L'algorithme MAC est utilisé dans la version 2 du protocole pour la protection de l'intégrité des données. On peut spécifier plusieurs algorithmes en les séparants par des virgules. Par défaut « hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 ».
On peut utiliser cette option si le répertoire de base (home directory) est partagé par plusieurs machines. Dans ce cas, la machine locale se réfère à une machine différente sur toutes les machines, et l'utilisateur peut recevoir plusieurs avertissements parce que des clefs de machines ont changé. Cette option désactive l'authentification par machine pour la machine locale. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut, on vérifie la clef de machine pour la machine locale.
Spécifie le nombre de tentatives de saisie de mot de passe avant d'abandonner. L'argument pour ce mot-clef est un entier. Par défaut 3.
Spécifie si on utilise l'authentification par mot de passe. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « yes ».
Spécifie le port pour se connecter sur la machine distante. Par défaut 22.
Spécifie l'ordre dans lequel on essaie les méthodes d'authentification pour la version 2 du protocole. Cette option permet au client de choisir une méthode (par exemple keyboard-interactive) plutôt qu'une autre (par exemple password). Par défaut « hostbased,publickey,keyboard-interactive,password ».
Spécifie la version du protocole que ssh doit supporter, par ordre de préférence. Les valeurs possibles sont « 1 » et « 2 ». On peut spécifier plusieurs valeurs en les séparant par des virgules. Par défaut « 2,1 ». Ce qui signifie que ssh essaie la version 2 du protocole, puis la version 1 du protocole si la version 2 n'est pas disponible.
Spécifie la commande à utiliser lors de la connexion au serveur. La chaîne de caractère contenant la commande est comprise jusqu'à la fin de la ligne, et est exécutée en utilisant l'interpréteur de commandes (shell) /bin/sh. Dans la chaîne de commande, on peut substituer le nom de la machine sur laquelle on se connecte par « %h » et le port par « %p ». La commande peut être absolument n'importe quoi, et doit lire depuis son entrée standard et écrire sur sa sortie standard. Elle peut éventuellement se connecter sur un serveur sshd(8) tournant sur une machine, ou exécuter sshd -i ailleurs. La gestion des clefs de machine est assurée en utilisant le nom de la machine (option « HostName ») sur laquelle on se connecte (par défaut, le nom fourni par l'utilisateur). Note : CheckHostIP n'est pas disponible pour les connexions qui utilisent une commande mandataire (proxy command).
Spécifie si on utilise l'authentification par clef publique. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « yes ». Cette option ne s'applique qu'à la version 2 du protocole.
Spécifie une redirection de port TCP/IP sur la machine distante à travers le tunnel sécurisé, vers la machine et le port spécifiés depuis la machine locale. Le premier argument est un numéro de port, et le second est de la forme machine:port. Pour les adresse IPv6, on utilise la syntaxe : machine/port. On peut spécifier plusieurs redirections de port, et on peut en ajouter en les passant en paramètres sur la ligne de commande. Seul root peut rediriger des ports privilégiés.
Spécifie si on utilise l'authentification basée sur les rhosts. Note : Cette déclaration n'affecte que la partie cliente, et n'a aucun effet sur la sécurité. La plupart des serveurs n'autorisent pas ce type d'authentification (RhostsAuthentication), parce qu'elle n'est pas sécurisée. (Voir RhostsRSAAuthentication) L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». Cette option ne s'applique que pour la version 1 du protocole.
Spécifie si on utilise l'authentification basée sur les rhosts en conjonction avec une authentification de machine basée sur RSA. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». Cette option ne s'applique que pour la version 1 du protocole, et nécessite que ssh soit exécutable en tant que root (setuid root).
Spécifie si on utilise l'authentification RSA. L'argument pour ce mot-clef est « yes » ou « no ». On essaie cette authentification seulement si le fichier d'identité existe, ou qu'un agent d'authentification est en cours d'exécution. Par défaut « yes ». Cette option ne s'applique que pour la version 1 du protocole.
Spécifie un lecteur de cartes à puce à utiliser. L'argument de ce mot-clef est le fichier spécial que ssh doit utiliser pour communiquer avec le lecteur de cartes à puces pour stocker la clef privée RSA. Par défaut, aucun fichier spécial n'est spécifié, et le support des lecteurs de cartes à puces est désactivé.
Si cette option a pour argument « yes », ssh ne demande pas d'ajouter les clefs de machine au fichier $HOME/.ssh/known_hosts, et refuse la connexion aux machines dont la clef de machine a changé. Ceci fournit une protection maximale contre les attaques de type « Cheval de Troie », néanmoins peut être gênant si le fichier /etc/ssh/ssh_known_hosts n'est pas très bien maintenu, ou si on se connecte fréquemment à de nouvelles machines. Cette option impose à l'utilisateur d'ajouter manuellement toutes les nouvelles machines. Si cette option a pour argument « no », ssh ajoute automatiquement les nouvelles clefs de machine aux fichiers des machines connues. Si cette option a pour argument « ask », ssh ajoute les nouvelles clefs de machine aux fichiers des machines connues si l'utilisateur confirme que c'est ce qu'il veut faire, et refuse de se connecter aux machines dont la clef a changé. Les clefs des machines connues sont vérifiées dans tous les cas. L'argument pour ce mot-clef est « yes », « no » ou « ask ». Par défaut « ask ».
Spécifie si on utilise un port privilégié pour les connexions sortantes. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». L'argument de ce mot-clef doit être « yes » si on se connecte sur de vieux serveurs qui ont besoin des authentifications « RhostsAuthentication » et « RhostsRSAAuthentication ».
Spécifie un nom d'utilisateur à utiliser pour se connecter. Ceci peut être utile si on se connecte avec des noms d'utilisateurs différents sur des machines différentes, et évite le souci de devoir se rappeler tous les noms d'utilisateurs à passer sur la ligne de commande.
Spécifie un fichier de base de données pour l'utilisateur de clefs de machines à utiliser au lieu de $HOME/.ssh/known_hosts.
Spécifie l'emplacement du programme xauth(1.) Par défaut /usr/X11R6/bin/xauth.

FICHIERS

$HOME/.ssh/config
C'est le fichier de configuration utilisateur. Le format de ce fichier est décrit ci-avant. Le client ssh utilise ce fichier. Ce fichier ne contient normalement pas d'informations sensibles, néanmoins, il est recommandé de n'autoriser la lecture/écriture que pour l'utilisateur (son propriétaire), et aucun accès pour les autres.
/etc/ssh/ssh_config
C'est le fichier de configuration pour toute la machine. Ce fichier définit des valeurs par défaut pour les paramètres qui ne sont pas définis dans les fichiers de configuration des utilisateurs, et pour les utilisateurs qui n'ont pas de fichier de configuration. Ce fichier doit être lisible par tout le monde.

AUTEURS

OpenSSH est dérivé de la version originale et libre ssh 1.2.12 par Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt et Dug Song ont corrigé de nombreux bugs, ré-ajouté des nouvelles fonctionnalité et créé OpenSSH. Markus Friedl a contribué au support des versions 1.5 et 2.0 du protocole SSH.

TRADUCTION FRANÇAISE

Laurent GAUTROT <l dot gautrot at free dot fr> 08/11/2002

VOIR AUSSI

ssh(1)

25 Septembre 1999 Linux 5.14.0-427.18.1.el9_4.x86_64