L’objectif est de pouvoir se connecter sans mot de passe d’un serveur à un autre de façon sécuritaire, ça peut être très pratique dans des scripts de gestion pour déplacer des backups pour pour déplacer des fichiers de logs si FTP ou autre protocole ne sont pas disponible. De plus SSH est un protocole sécuritaire sur lequel vous pouvez compter …

Il faut choisir un chemin pour le fichier en chemin, si vous le faites à partir du compte root, ce devrait être /root/.ssh/. Laissez ce dossier, mais choisissez un nom de clef qui correspond à votre serveur.

srv01# ssh-keygen -t rsa

Faites la même chose que pour le srv01, c’est-à-dire choisissez un nom de clef qui correspond à votre serveur.

srv02# ssh-keygen -t rsa

Il est très important de ne pas copier la clef privée, cette clef doit demeurer sur le serveur en TOUT temps, c’est la clef utilisée pour decrypter votre clef public, soyez prudent, surtout si votre serveur est accessible de l’Internet.

srv01# scp -P  /root/.ssh/srv01.pub root@srv02:/root/.ssh/

Il faut ajouter la clef public dans la liste des clefs autorisées du serveur.

srv02# cat /root/.ssh/srv01.pub >> /root/.ssh/authorized_keys

On teste le tout …

srv01# ssh -p  root@svr02

Si ça ne fonctionne pas voici ce que vous pouvez vérifier:

  • Fichier /etc/ssh/sshd_config pour être certain que vous autorisez l’authentification par clef public/privé!
  • RSAAuthentication yes
    PubkeyAuthentication yes
  • Droits sur les fichiers
  • chmod 600 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    chmod 644 ~/.ssh/srv01.pub #644 sur clef public
    chmod 600 ~./ssh/srv01 #600 sur clef privée