Muszę zautomatyzować ssh-keygen -t rsa
bez hasła, tj. Wejść po monicie.
Jak mogę to zrobić ze skryptu powłoki?
164
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:
pamiętaj, że musisz również upewnić się, że katalog git bin znajduje się w twojej ścieżce:
Aby użyć go w PoshGit, wystarczy:
źródło
git\usr\bin
to poprawny reż.ssh-keygen -f $Name -t rsq -N '""'
.'""'
'""'
to jedyny wariant, który u mnie zadziałał.źródło
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:
źródło
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 :
Jak zauważono w
man ssh-keygen
:(to jest z
openssh-client
opakowania w Debian 9,4 odcinku:OpenSSH_6.7p1 Debian-5+deb8u4
)źródło
Musiałem zautomatyzować w skrypcie bash polecenie ssh-keygen i ostateczną odpowiedź, która działa dobrze:
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.
źródło
źródło