Pour se connecter sur un serveur distant via SSH, normalement il faut saisir la commande :
ssh mon_user_distant@adresse_machine_distante
Où adresse_machine_distante peut être une adresse IP, ou un nom de machine si vous avez un DNS ou un fichier host bien configuré.
Puis saisir son mot de passe
Je vous propose grace à cet article de n’avoir plus qu’a saisir :
ssh mot_clé
(plus de mot de passe, de user et plus besoin de connaitre l’ip de la machine si vous n’avez pas de DNS)
Supprimer la saisie du mot de passe
Pour ce faire on utilisera un connexion SSH par clé et non plus par mot de passe , il faut donc que nous générions une paire de clé.
Se loguer avec cet utilisateur qui devra faire la connexion SSH ou faire un su pour cet utilisateur :
su mon_user_local
Générer une paire de clé sans passphrase
Cela se fait avec la commande :
ssh-keygen -t rsa -b 2048
- rsa : type de la clé générée, on peut aussi choisir dsa
- 2048 : longueur de la cél
A la question demandant où doit être sauvé la pair de clé généré, laisser la valeur par défaut : /home/mon_user_local/.ssh
Ajouter la clé public à l’ordinateur distant
Certains sites conseillent de copier la clé via scp sur l’ordinateur distant puis de faire un cat redirigé vers le fichier authorized_keys, mais il ya plus simple :
ssh-copy-id -i /home/mon_user_local/.ssh/id_rsa.pub mon_user_distant@IP_machine_distante
Se connecter et ajouter l’ordinateur distant à liste des known_host
On peut alors de connecter avec :
ssh mon_user_distant@IP_machine_distante
Aucun mot de passe ne sera demandé, par contre à la première connexion, SSH vous demandera si vous voulez ajouter l’ordinateur distant à la liste des ordinateurs connus et de confiance, repondez oui sinon cette question vous sera posée à chaque fois.
The authenticity of host '192.168.1.104 (192.168.1.104)' can't be established. RSA key fingerprint is 4d:24:12:81:41:c0:53:84:0f:da:33:b0:78:39:80:3d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.104' (RSA) to the list of known hosts.
Restreindre la porté de la clé
On peut si on veut ajouter de la sécurité restreindre les condition d’applications de la connexion via la clé précedement générée.
Pour cela sur la machine distante se connecter et editer .ssh/authorized_keys
vim /home/mon_user_distant/.ssh/authorized_keys
Y ajouter :
from="adresse_ip"
Où adresse_ip est l’adresse IP de la machine ayant le droit d’utiliser cette clé pour fiare une connexion SSH
Exemple :
from="192.168.1.222" ssh-rsa AAAAB3 ... cXgGiQ==
Configuration des options par défaut
On peut via le fichier .ssh/config spécifier à SSH l’utilisateur devant réaliser le connexion SSH et le nom ou l’adresse IP de la machine distante, le tout associé à un mot clé.
Ainsi il n’ya plus qu’a se souvenir de ce mot clé et SSH fait le reste.
Créer/éditer le fichier /home/mon_user_local/.ssh/config et y ajouter :
Host mot_cle Hostname adresse_ip_machine_distante User mon_user_distant
Le sauvegarder et la connexion se fera alors pas un simple :
ssh mot_cle
Sources :
http://reseau.erasme.org/static/serveurs_linux/sect_03_04.html
http://troy.jdmz.net/rsnapshot/
http://theclimber.fritalk.com/post/2009/06/17/Trics-Tips-%3A-configurer-son-client-ssh