Chciałbym stworzyć skrypt, który po prostu działa ssh-keygen -t rsa
. Ale jak przejść do niego 3 razy wejść?
Odpowiedzi:
Próbować:
ssh-keygen -t rsa -N "" -f my.key
-N ""
każe mu użyć pustego hasła (takiego samego jak dwa wpisy w interaktywnym skrypcie)
-f my.key
każe mu przechowywać klucz w my.key
(zmień według własnego uznania).
Całość działa bez konieczności podawania jakichkolwiek klawiszy enter :)
Aby wysłać wpisy do interaktywnego skryptu:
echo -e "\n\n\n" | ssh-keygen -t rsa
ssh-keygen
został upuszczony kreska - czy dodałeś to z powrotem? {edytowano} Ponadto - nie możesz uruchomić skryptu więcej niż jeden raz - zmienia pytania, aby potwierdzić, że chcesz nadpisać istniejący _rsa
plik klucza (więc trzeba podać ay lub n)
yes ""
zamiast echo -e "\n\n\n"
( yes
wyświetla dowolny podany argument [lub domyślnie "y"] w nieskończoność - idealne w sytuacjach, w których chce się po prostu udzielić odpowiedzi "tak" na cokolwiek program może poprosić). yes
jest krótszy i powinien ssh-keygen
zawsze dodać pytanie, na które również zostanie automatycznie udzielona odpowiedź. :)
wersja z hasłem to:
$ ssh-keygen -t rsa -b 4096 -C "comment" -P "examplePassphrase" -f "desired pathAndName" -q
Źródło to http://linux.die.net/man/1/ssh-keygen
Zgadzam się z Michelem Marro, tyle że potrzeba trochę więcej: jeśli plik już istnieje, nadal będzie interaktywny z pytaniem, czy musi go nadpisać.
Skorzystaj z odpowiedzi na to pytanie .
yes y | ssh-keygen -q -t rsa -N '' >/dev/null
Przekierowanie do wartości null jest konieczne, aby wyciszyć wiadomość zastępującą.
echo -e "\n"|ssh-keygen -t rsa -N ""
echo -e
emituje coś innego niż -e
w ogóle, co nie ssh-keygen
jest wszędzie dostępne).
ssh-keygen -N ''
jako części zautomatyzowanej procedury instalacji i nie czyta on w ogóle stdin, więc nie ma potrzeby podłączania do niego echo
( żadnego echo
wariantu). (To prawda, uważam, że stdin jest powiązany z /dev/null
moim przypadkiem użycia w produkcji; może być inne zachowanie, gdy jest ono dołączone do urządzenia TTY, ale lepszą odpowiedzią jest </dev/null
raczej niż echo ... |
)
$ ssh-keygen -t rsa -N '' Generating public/private rsa key pair. Enter file in which to save the key (/home/dlyons/.ssh/id_rsa):
Zalecane jest używanie ed25519 ze względu na bezpieczeństwo i wydajność.
yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""
tutaj
-o
Format klucza OpenSSH zamiast starszego PEM (wymaga OpenSSH 6.5+)
-a
Liczba testów pierwszości podczas badań przesiewowych kandydatów DH-GEX
-t
Typ klucza (ed25519, RSA, DSA itp.)
-f /mypath/bla
Ścieżka i nazwa pliku wyjściowego
-N ""
Użyj pustego hasła
i yes "y"
bez interakcji.
Wygeneruje dwa pliki
/mypath/bla
/mypath/bla.pub
gdzie bla
plik jest prywatny i bla.pub
publiczny.