Comment puis-je empêcher ssh d'offrir d'autres keys?

J'ai un server dev.example.com et dans son file authorized_keys j'ai ma key ~/.ssh/id_rsa.pub . J'ai aussi une key ~/.ssh/my_test.pub .

Mon ~/.ssh/config spécifie que pour dev.example.com il devrait utiliser id_rsa comme on le souhaiterait normalement.

Cependant, j'essaie de tester pour s'assurer que my_test ne permettra que l'access que je veux. J'ai donc essayé de transmettre le file d'identité:

 $ ssh -v -i /Users/wwerner/.ssh/my_test example . . . debug1: Offering RSA public key: /Users/wwerner/.ssh/id_rsa 

Et il se connecte. Crap.

Ok, donc peut-être que c'est un problème avec moi en utilisant l' example au lieu du FQDN:

 $ ssh -v -i /Users/wwerner/.ssh/my_test dev.example.com debug1: Offering RSA public key: /Users/wwerner/.ssh/id_rsa 

Et il se connecte. Peut-être que j'ai besoin de mon nom d'user?

 $ ssh -v -i /Users/wwerner/.ssh/my_test [email protected] debug1: Offering RSA public key: /Users/wwerner/.ssh/id_rsa 

D'accord … alors maintenant, je jette encore plus loin mon filet. Peut-être que le file de configuration est à l'origine de ce problème:

 $ ssh -v -F /dev/null -i /Users/wwerner/.ssh/my_test [email protected] debug1: Reading configuration data /dev/null debug1: Offering RSA public key: /Users/wwerner/.ssh/id_rsa 

Argh! Alors peut-être si j'utilise -o aussi?

 $ ssh -v -F /dev/null -o IdentityFile=/dev/null -i /Users/wwerner/.ssh/my_test [email protected] debug1: Offering RSA public key: /Users/wwerner/.ssh/id_rsa 

Qu'est-ce que je fais mal? Quel paramètre dois-je spécifier pour que ssh n'offre pas mon id_rsa ?

Vous pouvez utiliser la directive IdentitiesOnly conjointement avec la directive IdentityFile .

Sur la command line, vous pouvez utiliser:

 ssh -v -o "IdentitiesOnly=yes" -i /Users/wwerner/.ssh/my_test dev.example.com 

Comme alternative, vous pouvez définir la directive dans votre file .ssh/config dans la section de votre hôte.

Voir man ssh_config pour plus de détails