web-dev-qa-db-fra.com

Clé d'hôte du serveur de stockage automatique dans le cache avec plink

J'ai essayé d'émettre des commandes à l'aide de plink pour récupérer des informations sur mon serveur externe. Notez que ces commandes plink sont exécutées à partir d'un binaire qui n'attend aucune entrée de l'utilisateur. Existe-t-il un indicateur qui me permettra de remplacer ce message d'erreur et de poursuivre la sortie du programme?

The server's Host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
If you trust this Host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this Host, press Return to abandon the
connection.
Store key in cache? (y/n)

Je vous remercie!

21
Tad Oh

Essayez d'ajouter votre script avec:

echo y | plink -ssh root@REMOTE_IP_HERE "exit"

Cela dirigera le caractère y par stdin vers plink lorsque vous obtiendrez la clé de stockage dans le cache? (y/n) Invite, permettant à toutes les autres commandes plink de passer sans que l'utilisateur ait besoin de les saisir. La commande exit fermera la session SSH après son établissement, permettant ainsi l'exécution des commandes plink suivantes.

Voici un exemple de script qui écrit l'heure Unix du serveur externe dans un fichier local:

echo y | plink -ssh root@REMOTE_IP_HERE "exit"
plink -ssh root@REMOTE_IP_HERE "date -t" > remote_time.tmp

Référence de pipeline : http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html

20
Daniel Li

La réponse acceptée est "acceptable", mais pas sûre. La meilleure façon serait de spécifier la clé Host à plink pour empêcher toute attaque Man-In-the-Middle .

plink -hostkey aa:bb:cc... root@REMOTE_IP_HERE [...]