Ceci est une ancienne révision du document !
Table des matières
Connexion par clefs SSH - exemple
Voir aussi : Notes clefs SSH
Première connexion
Client
ssh utilisateur1@192.168.205.21
Comme c'est la première fois que vous vous connectez à cette machine, l'empreinte n'est pas encore connue. C'est pour éviter qu'un pirate se fasse passer pour votre serveur.
Répondre yes
The authenticity of host '192.168.205.21 (192.168.205.21)' can't be established. ECDSA key fingerprint is 3e:4b:eb:d2:cb:90:ad:f7:64:b5:2e:eb:9f:d8:3a:ab. Are you sure you want to continue connecting (yes/no)? yes
ssh config
Pour nous simplifier la vie et ne pas taper à chaque fois l'IP, le numéro de port et l'utilisateur, nous allons enregistrer tout cela dans un fichier de config
Client
- ~/.ssh/config
Host serv1 Hostname 192.168.205.21 User utilisateur1 Port 22
Le caractère '~' signifie le HOME de l'utilisateur, c'est-à-dire son répertoire par défaut (voir /etc/passwd)
Maintenant nous pouvons nous connecter
Client
ssh serv1
Connexion par clef
Avons-nous déjà une paire de clefs ?
Client
ls -l ~/.ssh/id_*
Si non (aucun fichier trouvé), créons une paire
Client
ssh-keygen
Ou par script
if [ ! -e ~/.ssh/id_rsa ] then ssh-keygen -q -N "" < /dev/zero fi
Appuyer trois fois sur entrée (valeur par défaut)
Client
ls -l ~/.ssh/id_*
-rw------- 1 jean jean 1679 mai 12 15:44 /home/jean/.ssh/id_rsa -rw-r----- 1 jean jean 394 mai 12 15:44 /home/jean/.ssh/id_rsa.pub
Nous avons deux fichiers :
- id_rsa.pub : Clef publique RSA, le fichier peut être distribué à tous, même sur le web
- id_rsa : Clef privée RSA, fichier à garder précieusement. À ne jamais distribuer à personne
Jetons un œil à la clef publique
Client
- ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgQYGWtV+70Zegq7gVS+h/OsSi3tvhcp3o1HemKhkORlbLSSMM60dkhid5rcy9e/NUhMElbpBE46CkRqvRLKFsqMwTkEVJoRkjGXi/w/mHu/1RqSVUBwFkXL3lJSrWAHgV1T5kXeq9z8LgoJgCdEfb4UF9XSYasPhaL6wT9T+TJ6VfEhKDOhV5IcJ8J6HQG0MW3NnAztVnHj4a8ZuAcVR9/cs+hWpQiEuixkSmsUHN7b6XJ+JOJiP3MBodIfMPEfd1IDLHA8uOuqGWeQPeUh0nPcLlnJnJ6cw40Ejhg80KCSFN8uOVigWwAimo0FCGxNNYqAtTDipuK5l0JKUG5YKV jean@debian2
Autorisation
Maintenant j'aimerais bien pouvoir me connecter sans mot de passe à serv1 (utilisateur1@192.168.205.21).
Rien de plus simple, je vais déposer ma clef publique (on ne copie jamais sa clef privée !) dans le HOME de utilisateur1 sur 192.168.205.21.
Pour être exacte il faut ajouter la clef publique dans ~/.ssh/authorized_keys.
Serveur
mkdir ~/.ssh cat <<EOF >> /root/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgQYGWtV+70Zegq7gVS+h/OsSi3tvhcp3o1HemKhkORlbLSSMM60dkhid5rcy9e/NUhMElbpBE46CkRqvRLKFsqMwTkEVJoRkjGXi/w/mHu/1RqSVUBwFkXL3lJSrWAHgV1T5kXeq9z8LgoJgCdEfb4UF9XSYasPhaL6wT9T+TJ6VfEhKDOhV5IcJ8J6HQG0MW3NnAztVnHj4a8ZuAcVR9/cs+hWpQiEuixkSmsUHN7b6XJ+JOJiP3MBodIfMPEfd1IDLHA8uOuqGWeQPeUh0nPcLlnJnJ6cw40Ejhg80KCSFN8uOVigWwAimo0FCGxNNYqAtTDipuK5l0JKUG5YKV jean@debian2 EOF chmod 600 ~/.ssh/authorized_keys
Attention, pour des raisons de sécurité les droits sur ~/.ssh/authorized_keys doivent être 600 (Lecteur-écriture que pour le propriétaire) et le fichier doit appartenir à l'utilisateur concerné.
Passe-phrase
partie à rédiger
Que se passe t-il si votre clef privée tombe entre de mauvaises mains ? Pour se prémunir, il est possible de chiffrer la clef SSH privée avec une passe-phrase.
Et pour éviter de taper à chaque fois la passe-phrase, on utilise un “agent”, aussi la passe-phrase ne sera demandée qu'une seule fois.
