Problème: j'ai 20 à 30 ssh-agent
identités. La plupart des serveurs refusent l'authentification avec Too many failed authentications
, car SSH ne me laisse généralement pas essayer 20 clés différentes pour me connecter.
Pour le moment, je spécifie le fichier d'identité pour chaque hôte manuellement, en utilisant la IdentityFile
et la IdentitiesOnly
directive, afin que SSH n'essaye qu'un seul fichier de clé, ce qui fonctionne.
Malheureusement, cela cesse de fonctionner dès que les clés d'origine ne sont plus disponibles. ssh-add -l
me montre les chemins corrects pour chaque fichier clé, et ils correspondent aux chemins d'accès .ssh/config
, mais cela ne fonctionne pas. Apparemment, SSH sélectionne l'indentation par signature de clé publique et non par nom de fichier, ce qui signifie que les fichiers d'origine doivent être disponibles pour que SSH puisse extraire la clé publique.
Il y a deux problèmes avec ceci:
- il cesse de fonctionner dès que je débranche le lecteur flash en maintenant les touches
- cela rend le transfert d'agent inutile car les fichiers de clés ne sont pas disponibles sur l'hôte distant
Bien sûr, je pouvais extraire les clés publiques de mes fichiers d'identité et les stocker sur mon ordinateur et sur chaque ordinateur distant auquel je me connecte habituellement. Cependant, cela ne semble pas être une solution souhaitable.
Ce dont j'ai besoin est une possibilité de sélectionner une identité de ssh-agent par nom de fichier, afin que je puisse facilement sélectionner la bonne clé en utilisant .ssh/config
ou en passant -i /path/to/original/key
, même sur un hôte distant dans lequel je me suis connecté. Ce serait encore mieux si je pouvais "surnommer" les clés afin que je n'ai même pas besoin de spécifier le chemin complet.
authorized_keys
fichier qui, selon la clé utilisée, exécute différentes commandes, sans jamais permettre un accès direct au shell.