2012-05-26 2 views

Antwort

175

Um einen SSH-Schlüsselpaar zu erzeugen, ohne dass Sie Folgendes tun können für ein Passwort gefragt zu werden:

$ ssh-keygen -f id_rsa -t rsa -N '' 
+2

Arbeitete für mich! Github hat immer nach einem Passwort ohne die Option -N gefragt, auch wenn man nach dem Prompt kein Passwort eingegeben hat. "Passwort eingeben (leer für keine Passphrase)" – Hollerweger

+3

Bei RHEL 6 habe ich folgende Fehlermeldung: "' ssh-keygen: option benötigt ein Argument - N' ":( –

+1

OK, das war, weil ich den' dzdo' Befehl davor benutzte, also musste ich schreiben: 'dzdo -i -u ziel_benutzer ssh-keygen -f id_rsa -t rsa -N '' ' "' –

15

Wenn Sie diese verwenden, in den Fenstern von Powershell tun müssen, um:

ssh-keygen -f $Name -t rsa -N "''" 

Beachten Sie, dass Sie auch sicherstellen müssen, dass sich das Verzeichnis git bin in Ihrem Pfad befindet:

$sshPath = "<path>\git\bin\" 

$env:path += ";$sshPath" 

Dann zu verwenden, um es in PoshGit es ist nur:

Add-SshKey "<path>\.shh\KeyFilename" 
+0

Danke dafür. BTW, 'git \ usr \ bin' ist das korrekte Verzeichnis. – majkinetor

+1

Das funktioniert nicht für mich. Ich erhalte eine Fehlermeldung" Schlüssel speichern "mykey" fehlgeschlagen: Passphrase zu kurz (mindestens vier Zeichen) ". Ich musste die doppelten/einfachen Anführungszeichen wechseln, zB' ssh-keygen -f $ Name -t rsq -N '""' '. –

+0

@AaronJensen gleich für mich. Danke für die Lösung. Ich habe ''" '' –

11

Nur eine Korrektur zu beantworten 2 ... ich auf meinem OL fand heraus und RHEL System der Dateiname id_rsa nicht id.rsa sein sollte.

So auf einem OL oder RHEL System mit dem Befehl wäre:

$ ssh-keygen -f id_rsa -t rsa -N '' 
+2

Soweit ich verstanden 'id_rsa' ist der Standard-Dateiname für einen RSA-Schlüssel, also, wenn Sie an der Standardeinstellung bleiben möchten, sind Sie nicht gezwungen, explizit die Option '-f' zu verwenden. – danidemi

+3

@danidemi Während Sie Recht haben, dass es die Standardeinstellung ist, ist ein Grund für die Angabe der Option '-f', dass Sie dies in einem Skript ausführen können. Sie können den Standard nur noch bestätigen, um die nachfolgende Aufforderung zu deaktivieren. –

16
$ ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N '' 
0
$ printf '\n' | ssh-keygen -N '' 
0

ich in einem Bash-Skript, das den Befehl ssh-keygen und die endgültige Antwort zu automatisieren benötigt funktioniert gut me:

echo -e "\n" | ssh-keygen -N "" &> /dev/null 

der Echo-Befehl mit dem -en interpretiert "\ n" als Enter-Taste, aber nicht mit dem Passwort arbeiten. Dann wird mit der Option -N "" (leere Passphrase) das Passwort leer sein und nach nichts fragen. &>/dev/null sendet 'stdout' und 'stderr' an/dev/null, so dass nichts über das Display gedruckt wird.

Verwandte Themen