Voir aussi : Notes clefs SSH
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
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
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 #ssh-keygen -t ecdsa -b 521
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 :
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
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é.
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.