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.keykaż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-keygenzostał 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 _rsaplik klucza (więc trzeba podać ay lub n)
yes ""zamiast echo -e "\n\n\n"( yeswyś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ć). yesjest krótszy i powinien ssh-keygenzawsze 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 -eemituje coś innego niż -ew ogóle, co nie ssh-keygenjest 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/nullmoim przypadkiem użycia w produkcji; może być inne zachowanie, gdy jest ono dołączone do urządzenia TTY, ale lepszą odpowiedzią jest </dev/nullraczej 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 blaplik jest prywatny i bla.pubpubliczny.