Odpowiedzi:
Aby wygenerować parę kluczy SSH bez pytania o hasło, możesz wykonać następujące czynności:
$ ssh-keygen -f id_rsa -t rsa -N ''
ssh-keygen: option requires an argument -- N
” :(
dzdo
przed nim polecenia, więc musiałem napisać:dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N "''"
-N ''
jest znacząca. Kiedy dodałem przestrzeń, udało się!
Jeśli musisz to zrobić z PowerShell w systemie Windows, użyj:
ssh-keygen -f $Name -t rsa -N '""'
pamiętaj, że musisz również upewnić się, że katalog git bin znajduje się w twojej ścieżce:
$sshPath = "<path>\git\bin\"
$env:path += ";$sshPath"
Aby użyć go w PoshGit, wystarczy:
Add-SshKey "<path>\.shh\KeyFilename"
git\usr\bin
to poprawny reż.
ssh-keygen -f $Name -t rsq -N '""'
.
'""'
'""'
to jedyny wariant, który u mnie zadziałał.
Tylko poprawka do odpowiedzi 2 ... Dowiedziałem się, że na moim systemie OL i RHEL nazwa pliku powinna być id_rsa, a nie id.rsa.
Tak więc w systemie OL lub RHEL polecenie wyglądałoby tak:
$ ssh-keygen -f id_rsa -t rsa -N ''
id_rsa
jest to domyślna nazwa pliku dla klucza RSA, więc jeśli chcesz pozostać przy domyślnej, nie musisz jawnie używać tej -f
opcji.
-f
opcja domyślna, jednym z powodów określenia tej opcji jest to, że możesz ją wykonać w skrypcie. Możesz po prostu potwierdzić ustawienie domyślne, aby wyłączyć kolejny monit.
Co powiesz na :
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''
Jak zauważono w 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.
(to jest z openssh-client
opakowania w Debian 9,4 odcinku: OpenSSH_6.7p1 Debian-5+deb8u4
)
Musiałem zautomatyzować w skrypcie bash polecenie ssh-keygen i ostateczną odpowiedź, która działa dobrze:
echo -e "\n" | ssh-keygen -N "" &> /dev/null
Polecenie echo z -e interpretuje "\ n" jako klawisz Enter, ale nie działa z hasłem. Następnie używając opcji -N "" (puste hasło) hasło będzie puste i nie będzie o nic pytać. &> / dev / null wyśle 'stdout' i 'stderr' do / dev / null, więc nic nie jest drukowane na wyświetlaczu.
$ printf '\n' | ssh-keygen -N ''