À l'aide de la ssh
ligne de commande (OpenSSH), puis-je spécifier l'empreinte digitale de la clé d'hôte du serveur?
Ceci est possible avec winscp.com en utilisant (par exemple) -hostkey="ssh-rsa 2048 AA:BB:CC...etc
J'ai lu la page de manuel plusieurs fois, je m'excuse si j'ai manqué l'évidence là-bas.
Je ne veux pas simplement accepter automatiquement une clé d'hôte, et je ne veux pas obliger l'utilisateur à mettre à jour leur known_hosts
, mais plutôt spécifier la clé d'hôte sous une forme quelconque sur la ligne de commande.
Réponses:
Il n'y a pas d'option de ligne de commande dans OpenSSH pour transmettre une empreinte digitale de clé d'hôte.
Bien que vous puissiez utiliser un fichier temporaire (avec le même format que le
known_hosts
) etssh
utiliser celui-ci en utilisant-o UserKnownHostsFile
:Voir les pages de manuel
ssh
(pour le-o
) etssh_config
(pour leUserKnownHostsFile
).Vous pouvez également envisager d'utiliser le
StrictHostKeyChecking yes
.Comme suggéré sur Accepter automatiquement l'empreinte digitale de la clé rsa à partir de la ligne de commande , vous pouvez écrire un petit script qui vous permettrait d'y parvenir:
Si vous appelez le script
ssh_known_host
, vous pouvez l'utiliser en passant la clé comme premier argument:la source
-o UserKnownHostsFile=<(echo "hostname ssh-rsa ...")
ne fonctionne pas?<()
ne peut être lu qu'une seule fois, alors qu'ilssh
lit le fichier à plusieurs reprises.