ssh est une manière sécurisée et recommandée de se connecter à une machine et on peut se connecter de différentes manières :
- Saisir de son mot de passe à chaque connexion
- Connexion automatique
- Connexion automatique après saisie d'une phrase (passphrase)
Préparation
ssh est un protocole qui utiliser deux types de cryptage pour l'échange de données :
- le cryptage asymétrique tout d'abord pour échanger de manière sécurisée la clé symétrique.
- le cryptage symétrique pour l'échange des données, beaucoup plus rapide que le premier
Il faut donc créer des clés (une clé publique pour l'encryptage) et une clé privée (pour le décryptage), vous pouvez préciser quel type de chiffrement vous voulez (rsa ou dsa). Par exemple, tapez la commande suivante :
$ ssh-keygen -t rsa
De base, les clés id_rsa et id_rsa.pub sont sauvegardées dans le répertoire caché .ssh de votre $HOME. Ne publiez jamais votre clé privée !
La passphrase permet de crypter la clé privée pour plus de sécurité (connexion avec phrase) mais on vous laisse la possibilité de ne pas en donner (connexion automatique).
Vous pouvez changer le nom des fichiers ou du répertoire d'accueil mais dans tous les cas, pour vous connecter à un serveur, les clés devront être présentes dans ce répertoire avec le nom par défaut.
Connexion automatique
Pour la connexion automatique, il faut exporter la clé publique sur la machine où se connecter.
Sous (client) Linux, taper la commande
$ ssh-copy-id -i id_rsa.pub login@machine
Sous (client) Mac, c'est un peu plus compliqué
$ scp id_rsa.pub login@machine:.ssh
$ ssh login@machine
$ cd .ssh
$ cat id_rsa.pub >> authorized_keys
Et voilà ... C'est fait. Vous l'aurez compris, authorized_keys
est un petit fichier texte qui contient des clés publiques.
Connexion avec une phrase
Si vous avez saisi une passphrase, au lieu de taper votre mot de passe, vous devez taper celle-ci pour vous connecter... Il y a un moyen de ne pas le faire à chaque fois en utilisant ssh-add. Cette commande est à taper sur la machine courante, la phrase ne sera demandée qu'une seule fois pour la durée de la session.
$ ssh-add
En cas de problème...
C'est facile de se planter, un -
à la place d'un _
par exemple. Pour voir, ce qu'il se passe le cas échéant :
$ ssh -vvv login@machine