Linux SSH sélectionner une clé publique

Récemment j’ai eu un problème, je n’arrivais pas à faire en sorte de ne pas avoir à me logger à un hôte distant que je me connectais en ssh ou avec rsync.

Un utilisateur peut avoir plusieurs clés SSH

Vous pouvez pour un utilisateur plusieurs clés SSH. Le problème est donc de sélectionner la bonne clé SSH à utiliser. Le problème que j’ai eu était que j’avais généré une seconde clé SSH pour l’utilisateur root sans savoir qu’il en avait déjà une. Comme j’avais besoin d’avoir un accès sur un autre serveur sans avoir à m’authentifier (pour faire du Rsync ou du ssh par exemple).  J’ai vais déposé la clé publique que je venais de généré, mais l’authentification était quand même demandé ! Grâce à l’étude d’un service qui marchait, j’ai pu constater que a clé n’était pas la même.

Il existe un fichier de configuration pour une utilisation avancée

 

Ne regardant de nouveau dans le répertoire j’ai vu qu’il y avait deux fichiers avec l’extension .pub, donc deux clés. Il y avait aussi un fichier config (droit 644), qui est le fichier de configuration des clé. Ce fichier vous permet de spécifier quelle clé utiliser pour quel hôte.

Host myshortname realname.example.com
    HostName realname.example.com
    IdentityFile ~/.ssh/realname_rsa # la clé privée
    User remoteusername

Host myother realname2.example.org
    HostName realname2.example.org
    IdentityFile ~/.ssh/realname2_rsa
    User remoteusername

Mais on peut tout simplement avoir seulement la directive IdentityFile

IdentityFile /root/.ssh/id_ns666817

où id_ns666817 est la clé privée. C’est ce cas de figure que j’ai eu, et explique pourquoi il n’y avait qu’une clé SSH qui était opérationnelle.

Plus d’info : Question sur StackOverflow

 

 

Retour en haut