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