Antworten:
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:
ssh-keygen -f $Name -t rsa -N '""'
Beachten Sie, dass Sie auch sicherstellen müssen, dass sich das Git-Bin-Verzeichnis in Ihrem Pfad befindet:
$sshPath = "<path>\git\bin\"
$env:path += ";$sshPath"
Um es dann in PoshGit zu verwenden, ist es nur:
Add-SshKey "<path>\.shh\KeyFilename"
git\usr\bin
ist das richtige Verzeichnis.
ssh-keygen -f $Name -t rsq -N '""'
.
'""'
'""'
ist die einzige Variante, die bei mir funktioniert hat.
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:
$ ssh-keygen -f id_rsa -t rsa -N ''
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 :
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''
Wie in man ssh-keygen
:
SYNOPSIS
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile]
(...)
-q Silence ssh-keygen.
(das heißt mit openssh-client
Paket in Debian 9.4 Stretch: OpenSSH_6.7p1 Debian-5+deb8u4
)
Ich musste den Befehl ssh-keygen und die endgültige Antwort, die für mich gut funktioniert, in einem Bash-Skript automatisieren:
echo -e "\n" | ssh-keygen -N "" &> /dev/null
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.
$ printf '\n' | ssh-keygen -N ''