Ich muss ssh-keygen -t rsa
ohne Passwort automatisieren , dh an der Eingabeaufforderung eingeben.
Wie kann ich das mit einem Shell-Skript machen?
164
Um ein SSH-Schlüsselpaar zu generieren, ohne zur Eingabe einer Passphrase aufgefordert zu werden, haben Sie folgende Möglichkeiten:
$ ssh-keygen -f id_rsa -t rsa -N ''
ssh-keygen: option requires an argument -- N
" :(dzdo
Kommando davor verwendet habe, also musste ich schreiben:dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N "''"
-N ''
Bedeutung ist. Als ich den Platz hinzufügte, war es erfolgreich!Wenn Sie dies in Windows unter PowerShell tun müssen, verwenden Sie:
Beachten Sie, dass Sie auch sicherstellen müssen, dass sich das Git-Bin-Verzeichnis in Ihrem Pfad befindet:
Um es dann in PoshGit zu verwenden, ist es nur:
quelle
git\usr\bin
ist das richtige Verzeichnis.ssh-keygen -f $Name -t rsq -N '""'
.'""'
'""'
ist die einzige Variante, die bei mir funktioniert hat.quelle
Nur eine Korrektur, um Antwort 2 zu beantworten ... Ich habe auf meinem OL- und RHEL-System herausgefunden, dass der Dateiname id_rsa und nicht id.rsa sein sollte.
Auf einem OL- oder RHEL-System wäre der Befehl also:
quelle
id_rsa
ist dies der Standarddateiname für einen RSA-Schlüssel. Wenn Sie sich also an den Standard halten möchten, müssen Sie die-f
Option nicht explizit verwenden .-f
Option darin, dass Sie dies in einem Skript ausführen können. Sie können einfach die Standardeinstellung erneut bestätigen, um die nachfolgende Eingabeaufforderung zu deaktivieren.Wie wäre es mit :
Wie in
man ssh-keygen
:(das heißt mit
openssh-client
Paket in Debian 9.4 Stretch:OpenSSH_6.7p1 Debian-5+deb8u4
)quelle
Ich musste den Befehl ssh-keygen und die endgültige Antwort, die für mich gut funktioniert, in einem Bash-Skript automatisieren:
Der Echo-Befehl mit dem -e interpretiert "\ n" als Eingabetaste, funktioniert jedoch nicht mit der Passphrase. Wenn Sie dann die Option -N "" (leere Passphrase) verwenden, ist das Passwort leer und fordert nichts an. &> / dev / null sendet 'stdout' und 'stderr' an / dev / null, sodass nichts über die Anzeige gedruckt wird.
quelle
quelle