2012-05-26 15 views

Odpowiedz

175

Aby wygenerować parę kluczy SSH bez monit o podanie hasła można wykonać następujące czynności:

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

Pracowałem dla mnie! Github zawsze pytał o hasło bez opcji -N, nawet jeśli nie wpisano hasła po promt "Wprowadź hasło (puste dla braku hasła)" – Hollerweger

+3

Na RHEL 6, otrzymałem ten błąd: "ssh-keygen: opcja wymaga argumentu - N' ":( –

+1

OK, ponieważ użyłem polecenia' dzdo' przed nim, więc musiałem napisać: 'dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N" '' "' –

15

Jeśli trzeba to zrobić z PowerShell w oknach użyć:

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

Pamiętaj, że musisz również upewnić się, że katalog bin git znajduje się na Twojej ścieżce:

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

$env:path += ";$sshPath" 

Potem go używać w PoshGit to po prostu:

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

Dzięki za to. BTW, 'git \ usr \ bin' jest prawidłowym reż. – majkinetor

+1

To nie działa dla mnie Otrzymuję błąd" Zapisywanie klucza "mykey" nie powiodło się: hasło jest za krótkie (minimum cztery znaki) "Musiałem zmienić podwójne/pojedyncze cytaty, np.' Ssh-keygen -f $ Nazwa -t rsq -N '""' '. –

+0

@AaronJensen to samo dla mnie.Dziękuję za poprawkę. Użyłem' '"" " –

11

Wystarczy korekta odpowiedzieć 2 ... znalazłem na moim OL i systemu RHEL nazwa pliku powinna być id_rsa nie id.rsa.

Więc na OL lub systemu RHEL komenda będzie:

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

O ile zrozumiałem" id_rsa "jest domyślną nazwą pliku dla klucza RSA, więc jeśli chcesz trzymać się domyślnego, jesteś nie zmuszony do jawnego użycia opcji '-f'. – danidemi

+3

@danidemi, podczas gdy masz rację, że jest to ustawienie domyślne, jednym z powodów określenia opcji '-f' jest to, że możesz wykonać to w skrypcie. Możesz po prostu potwierdzić ustawienie domyślne, aby wyłączyć kolejny monit. –

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

Musiałem zautomatyzować w skrypcie bash polecenia ssh-keygen i ostateczną odpowiedź, która działa dobrze mi:

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

echo poleceń z -e interpretuje „\ n” jako klawisz Enter, ale nie działają z hasłem. Następnie za pomocą opcji -N "" (puste hasło) hasło będzie puste i nie będzie prosić o nic. &>/dev/null wyśle ​​'stdout' i 'stderr' do/dev/null, więc nic nie jest drukowane przez wyświetlacz.

Powiązane problemy