web-dev-qa-db-fra.com

passage de l'argument yes lors de la commande scp

Je rencontre un problème lorsque j'exécute simplement ces commandes.

Le serveur distant souhaite passer yes pour ajouter la clé dans le fichier RSA car la première connexion est établie avec scp.

les commandes sont données ci-dessous

#!/bin/bash

scp  -P58222 root@IP:/root/K /N
/usr/bin/expect -c 'expect "\n" { expect "Are you sure you want to continue connecting (yes/no)?" }'
send "yes\r"
expect "$ "
send "exit\r"

En fait, je dois passer oui dans mon script en demandant

L'authenticité de l'adresse IP (adresse IP) de l'hôte ne peut pas être établie.

RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? 

Voulez-vous vraiment continuer à vous connecter (oui/non)?

comment puis-je me débarrasser de ce problème?

avec

scp -o  StrictHostKeyChecking=no

c'est toujours demander.

16
Harry shah
scp -o StrictHostKeyChecking=no root@IP:/root/K 

De toute évidence, ce n'est pas une solution très sécurisée. Fonctionne pour les plans uniques où vous ne vous souciez pas de l'homme au milieu.

15
economy

Pour moi, cela fonctionne:

 yes | scp -r /opt/MyFiles root@<MyNewServerIP>:/opt/MyFiles

Cordialement. =)

7
Chuss

La meilleure façon de procéder serait probablement d'utiliser la commande suivante avant votre commande scp:

ssh-keyscan -H ${SSH_Host} >> ~/.ssh/known_hosts

Cela ajoutera SSH_Host à vos hôtes connus et scp ne se plaindra pas.

0
Colton Hicks