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
) et ssh
utiliser celui-ci en utilisant -o UserKnownHostsFile
:
ssh -o "UserKnownHostsFile my_temp_known_host" host.example.com
Voir les pages de manuel ssh
(pour le -o
) et ssh_config
(pour le UserKnownHostsFile
).
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:
#!/bin/bash
TEMPFILE=$(mktemp)
echo "$1" > $TEMPFILE
ssh -o "UserKnownHostsFile $TEMPFILE" ${@:2}
rm $TEMPFILE
Si vous appelez le script ssh_known_host
, vous pouvez l'utiliser en passant la clé comme premier argument:
ssh_known_host 'github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==' git@github.com