SSH - Echange de clés RSA

De PedroWiki

Introduction

Cet article décrit la manière d'échanger des clés RSA entre serveurs Linux.

Cette manipulation peut être utile lorsqu'on veut, sur un hôte A, utiliser des scripts qui passent directement des commandes sur un hôte B, sans avoir à entrer le moindre mot de passe.

La méthode décrite ci-dessous est basée sur un exemple d'échange entre 2 hôtes Linux Ubuntu, il peut y avoir des adaptations à faire sur les noms de fichiers notamment en fonction de la plateforme visée.

Méthode

  • On souhaite que l'utilisateur UA sur l'hôte A se connecte en tant qu'utilisateur UB sur l'hôte B en s'authentifiant de manière automatique.
  • Se connecter en tant que UA sur l'hôte A et vérifier les points suivants:
=> présence d'une clé publique pour UA sur l'hôte A:
# ls .ssh/id_rsa.pub
SI LE FICHIER N'EXISTE PAS:
# ssh-keygen -t rsa => cette commande génère le fichier de clé publique RSA
=> si l'échange doit fonctionner dans les 2 sens, vérifier également la configuration de sshd:
DANS /etc/ssh/sshd_config VERIFIER LA PRESENCE DE:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys
  • Se connecter en tant que UB sur l'hôte B et passer la commande suivante:
# ssh UA@hôteA 'cat .ssh/id_rsa.pub' >> <homedir_UB>/.ssh/authorized_keys
  • Depuis l'hôte A, tenter de se connecter sur l'hôte B:
# ssh UB@hôteB => en principe, la connexion se fait sans mot de passe.

En complément

Cf SSH - Conversion de clés pour Putty