Linux Sécurité
ssh
Fichier de configuration du client (/etc/ssh/ssh_config et ~/.ssh/config)



Pour : Linux


Le fichier "/etc/ssh/ssh_config" permet de configurer les paramètres global de la machine pour toutes les connexions vers des serveurs "ssh".
Il est possible de configurer des paramètres de configuration dans chaque compte, pour cela il faut éditer le fichier "config" dans le répertoire utilisateur dans:
/home/[nom_utilisateur]/.ssh/config
Si le fichier "config" n'existe pas, créez le, puis éditez les options spécifique a ajouter au compte en question, les options utilisable sont les même que dans le fichier de "/etc/ssh/ssh_config".


Il faut disposer des droits du compte "root" pour modifier le fichier "/etc/ssh/ssh_config".

# nano /etc/ssh/ssh_config



Voici les réglages par défault de la machine cliente:

Host * # ForwardAgent no # ForwardX11 no # ForwardX11Trusted yes # RhostsRSAAuthentication no # RSAAuthentication yes # PasswordAuthentication yes # HostbasedAuthentication no # GSSAPIAuthentication no # GSSAPIDelegateCredentials no # GSSAPIKeyExchange no # GSSAPITrustDNS no # BatchMode no # CheckHostIP yes # AddressFamily any # ConnectTimeout 0 # StrictHostKeyChecking ask # IdentityFile ~/.ssh/identity # IdentityFile ~/.ssh/id_rsa # IdentityFile ~/.ssh/id_dsa # Port 22 # Protocol 2,1 # Cipher 3des # Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3$ # MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 # EscapeChar ~ # Tunnel no # TunnelDevice any:any # PermitLocalCommand no # VisualHostKey no # ProxyCommand ssh -q -W %h:%p gateway.example.com SendEnv LANG LC_* HashKnownHosts yes GSSAPIAuthentication yes GSSAPIDelegateCredentials no





Créer une configuration différentes vers chaque serveurs ssh

Cette ligne permet d'appliquer les paramètres vers tout les serveurs.
Host *

Il vous est possible de configurer des paramètres pour différents serveur "ssh".
Chaque nouvelle configuration de serveur commence par la ligne "Host xxxxxx" et fini au début de la configuration suivante donc jusqu'à la ligne "Host xxxxxx".

Par exemple on va configurer les paramètres vers deux serveurs.
Le serveur ssh "192.168.10.20" utilise le port "4242" et le domaine "abc123.com" utilise le port "15000" pour ce connecter.
Au lieu de saisir les différents numéros de ports lors de chaque connexion, on va rajouter les lignes suivantes dans le fichier "/etc/ssh/ssh_config".

Host 192.168.10.20
Port 4242

Host * abc123.com
Port 15000

Maintenant il ne sera plus nécessaire de saisir les ports des serveurs, vous pouvez ajouter de la même façon d'autre options pour plusieurs serveurs "ssh".
Plus vous saisirez d'options dans la configuration du client et moins vous aurez d'otions a tapez en ligne de commande pour vous connecter.



Voici en détail quelques options

Permet de définir vers quel machine les paramètres vont s'appliquer, l'étoile veut dire toutes.
Hote *

Permet d'indiquer de tenter une authentification RSA, clé publique/privé généré avec "ssh-keygen".
RSAAuthentication yes

Permet de s'authentifier avec une clé public.
PubKeyAuthentication yes

Cette option autorise l'authentification de base avec mot de passe (a pas confondre avec passphrase).
PasswordAuthentication yes

Spécifie si le ssh doit vérifier l'adresse IP de l'hôte qui se connectent au serveur pour détecter une usurpation DNS.
CheckHostIP yes

Permet de définir la clé privé a utiliser pour s'authentifier lors de la connecter sur cette machine distante.
IdentityFile ~/.ssh/id_dsa

Permet de définir le nom du compte utilisateur à distance qu'il faut utiliser pour ce connecter.
User nom_du_compte

C'est le numéro de port sur lequel le ssh se connecte à l'hôte distant.
Port 22

Permet d'avoir un fichier known_hosts plus lisible.
HashKnownHosts yes

Il existe évidemment beaucoups plus options, pour cela regarder le man ssh_config.



Configurer plusieurs clé privé sur un compte client ssh (~/.ssh/config)

Pour indiquer au client ssh la clé privé à utiliser pour chaque serveurs, il faut le spécifier dans le fichier "~/.ssh/config".
Voici la syntaxe de base pour deux serveurs:
Host [serveur_ssh]
User [nom_du_compte]
IdentityFile [fichier_clé]

Host [serveur_ssh]
User [nom_du_compte]
IdentityFile [fichier_clé]

Exemple:

$ nano ~/.ssh/config Host pc-octetmalin User cedric IdentityFile /home/cedric/.ssh/id_dsa_11 Host 192.168.1.30 User toto IdentityFile /home/cedric/.ssh/id_dsa_22





Lien pour aller sur le site de l'éditeur:
www.openssh.com/fr

Liens qui peuvent vous aidez:
OpenSSH - Tutoriel pour installer une infrastructure client et serveur en SSH
ssh - Fichier "known_hosts" liste les clés publique des serveurs
ssh-keygen - Générateur de clé publique/privé en SSH
ssh - Fichier "authorized_keys" les clés publique autorisé a se connecter au compte
ssh - Fichier de configuration du serveur (/etc/ssh/sshd_config)
Agent SSH (ssh-agent) - Gestion des clés et leur passphrase en mémoire (ssh-add)



Par O.Cédric
Sur www.octetmalin.net

Article publié le:
18/11/2011 10:46





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.