it-swarm.com.de

So führen Sie ssh-keygen ohne Eingabeaufforderung aus

Ich möchte das Generieren eines Paares von ssh-Schlüsseln mithilfe von Shell-Skripten unter Centos7 automatisieren und habe es versucht

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

alle diese Befehle funktionieren nicht, geben Sie einfach ein "Enter" ein und das Shell-Skript wurde bei "Passwort eingeben (leer für kein Passwort)" angehalten. Ich möchte nur wissen, wie mehrere "Enter" in Shell kontinuierlich simuliert werden.

Vielen Dank, wenn jemand helfen kann!

21
Jeremy Wang

Geben Sie einfach einen ungültigen Pass mit der Markierung -N Ein:

ssh-keygen -t rsa -N ""

Von Mann Seite:

 -N new_passphrase
         Provides the new passphrase.

Id_rsa überschreiben

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

Wenn Sie den Benutzer nicht zur Eingabe einer Datei auffordern möchten, in der der Schlüssel gespeichert werden soll, können Sie dem Befehl das Dateiausgabe-Flag -f Hinzufügen.

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

Auf diese Weise wird der Benutzer nicht zur Eingabe aufgefordert, es sei denn, es sind bereits id_rsa Dateien vorhanden.

26
Lukasz Dynowski

Für mich musste ich eine Kombination aus @ Lukasz answer und @ Juan one verwenden, wenn ich den Befehl ssh verwendete

ssh -p$SSH_PORT -q [email protected]$INSTANCE_IP 'yes y | ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa'
1
redochka