Répondez «oui» à ssh-copy-id exécuté pour la première fois par un script?

8

La première fois, ssh-copy-idil vous demandera

# ssh-copy-id -i .ssh/id_dsa.pub [email protected]
The authenticity of host 'example.com (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 39:fb:5e:70:30:33:2b:18:17:e9:4f:2f:91:b5:d2:21.
Are you sure you want to continue connecting (yes/no)? 

Est-il possible de l'écrire, donc le script répondra simplement oui?

Sandra
la source

Réponses:

6

Si votre ssh-copy-idne prend pas en charge l'option StrictHostKeyChecking, vous pouvez écrire un script qui:

  1. Exécuter ssh-keyscansur le serveur cible pour obtenir la clé publique
  2. Ajoutez cela au fichier known_hosts
  3. Courir ssh-copy-id
cjc
la source
8

SSH a une option pour ajouter automatiquement toutes les clés d'hôte au fichier d'hôtes de confiance:

ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no backup@example.com

Vous pouvez également effectuer les opérations suivantes:

echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub backup@example.com

Modifier : comme il semble que ces solutions ne fonctionnent pas ssh-copy-id, vous pouvez toujours créer un ~/.ssh/configfichier avec l'option suivante:

StrictHostKeyChecking no

Cela devrait fonctionner avec toutes les connexions SSH, qu'elles soient appelées via un script ou non.

brain99
la source
1
Malheureusement, cela ne fonctionne pas et ssh-copy-idn'a pas-o
Sandra
Bizarre, il rapporte ce changement lors de l'émissionssh-copy-id -?
brain99
1
@sandra ssh-copy-idest un script. Vous pouvez le modifier pour ajouter -o StrictHostKeyChecking=noou désactiver ce paramètre dans le fichier ssh_config.
ewwhite
De plus, vous n'avez pas besoin de spécifier l'emplacement de la clé ... ssh-copy-id servernamefonctionne très bien.
ewwhite
sudo sed -i.bak 's/ssh \$/ssh -o StrictHostKeyChecking=no \$/' $(which ssh-copy-id).
quanta
0

Essaye ça:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@example.com -y

il n'ajoute pas les clés d'hôte au fichier known_hosts mais vous permet de copier (ou d'ajouter) la clé publique à celle authorized_keysque vous souhaitez, si tel est le seul objectif ici.

Abhay Tiwari
la source
il n'y a pas d'option -y
ImranRazaKhan