web-dev-qa-db-fra.com

Ligne de commande SSH Spécifier l'empreinte d'hôte du serveur.

Utilisation de la ligne de commande ssh (OpenSSH), puis-je spécifier l'empreinte d'hôte de l'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 d'homme à quelques reprises, 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 spécifiez plutôt la clé d'hôte sous une forme de la ligne de commande.

15
payo

Il n'y a pas d'option de ligne de commande dans OpenSSH pour transmettre une empreinte d'une clé d'hôte.

Bien que vous puissiez utiliser un fichier temporaire (avec le même format que le known_hosts) et faire le ssh utilise qu'utiliser le -o UserKnownHostsFile:

ssh -o "UserKnownHostsFile my_temp_known_Host" Host.example.com

Voir le ssh (pour le -o) et le ssh_config (pour les pages UserKnownHostsFile).


Vous pouvez également envisager d'utiliser le StrictHostKeyChecking yes.


Comme suggéré sur Acceptez automatiquement la touche RSA à partir de la ligne de commande , vous pouvez écrire un petit script qui vous permettrait de réaliser cela:

#!/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==' [email protected]
16
Martin Prikryl