web-dev-qa-db-fra.com

Comment exécuter ssh-keygen sans invite

Je souhaite automatiser la génération d'une paire de clés ssh à l'aide du script Shell sur Centos7, et j'ai essayé

yes "y" | ssh-keygen -t rsa
echo "\n\n\n" | ssh-keygen...
echo | ssh-keygen..

toutes ces commandes ne fonctionnent pas, il suffit de saisir un 'enter' et le script Shell s'est arrêté sur "Enter passphrase (empty for no passphrase)", je veux juste savoir comment simuler plusieurs 'enter' dans Shell en continu.

Merci beaucoup si quelqu'un peut vous aider!

21
Jeremy Wang

Entrez simplement un laissez-passer nul en utilisant -N drapeau:

ssh-keygen -t rsa -N ""

De homme page:

 -N new_passphrase
         Provides the new passphrase.

Pour remplacer id_rsa

 yes y |ssh-keygen -q -t rsa -N '' >/dev/null
26
Juan Diego Godoy

Si vous ne souhaitez pas demander à l'utilisateur un fichier dans lequel enregistrer la clé, vous pouvez ajouter un indicateur de sortie de fichier -f à la commande.

ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa

De cette façon, l'utilisateur ne sera invité à aucune entrée - à moins que id_rsa fichier (s) existe déjà.

26
Lukasz Dynowski

Pour moi, j'ai dû utiliser à la fois la réponse @Lukasz et @Juan one, lors de l'utilisation de la commande ssh

ssh -p$SSH_PORT -q joker@$INSTANCE_IP 'yes y | ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa'
1
redochka