Comme la plupart des administrateurs système, j'utilise openssh tout le temps. J'ai environ une douzaine de clés ssh, j'aime avoir une clé ssh différente pour chaque hôte. Cependant, cela pose problème lorsque je me connecte à un hôte pour la première fois et que je n'ai qu'un mot de passe. Je veux juste me connecter à l'hôte en utilisant un mot de passe, pas de clé ssh dans ce cas. Cependant, le client ssh offrira toutes les clés publiques de mon ~/.ssh/
(je le sais en regardant la sortie de ssh -v
). Étant donné que j'en ai tellement, je serai déconnecté pour trop d'échecs d'authentification.
Existe-t-il un moyen de dire à mon client ssh de ne pas offrir toutes les clés ssh?
Réponses:
Il s'agit d'un comportement attendu selon la page de manuel de
ssh_config
:Fondamentalement, la spécification de
IdentityFile
s ajoute simplement des clés à une liste actuelle de l'agent SSH déjà présenté au client.Essayez de remplacer ce comportement avec ceci au bas de votre
.ssh/config
fichier:Vous pouvez également remplacer ce paramètre au niveau de l'hôte, par exemple:
la source
ssh -o "IdentitiesOnly true" -v -A user@host
ce que j'utilise pour me connecter à une machine qui n'a aucune de mes clés, mais je veux proposer le transfert d'agent pour continuer. (-v
pour le débogage détaillé).yes
(et nontrue
)?IdentitiesOnly
peut ne pas toujours aider, vous devrez peut-être exclure un hôte spécifiquement; voir superuser.com/questions/859661/…Bien que d'autres aient fait allusion à cela avec des solutions basées sur la configuration, il convient probablement de souligner que vous pouvez facilement le faire une seule fois sur la ligne de commande avec:
la source
Suite à la solution de James Sneeringer, vous voudrez peut-être simplement définir un ssh_config dans le sens de:
Si vous vous connectez avec une clé particulière à de nombreuses machines n'appartenant pas à un domaine commun, pensez à leur attribuer tous les CNAME de votre propre DNS. Je le fais avec tous les systèmes clients.
la source
Semblable à la solution de user23413, vous pouvez désactiver complètement l'authentification par clé publique pour un hôte particulier (ou modèle générique):
la source
Si vous pointez sur un fichier de clé particulier avec ssh -i / chemin / vers / clé, il ne l'utilisera que si d'autres sont chargés dans l'agent, et vous ne serez pas invité à entrer le mot de passe. Vous pouvez également modifier votre ~ / .ssh / config et publier quelque chose comme ça ...
Hôte foo.example.com
IdentityFile .ssh / id_rsa_foo.example.com
vous pouvez aussi faire ...
Hôte * .example.org
IdentityFile .ssh / id_rsa_example.org
la source
IdentitiesOnly
seulement avec cette volonté.