Відповіді:
Спробуйте:
ssh-keygen -t rsa -N "" -f my.key
-N "" говорить йому використовувати порожню парольну фразу (те саме, що два входи в інтерактивному сценарії)
-f my.keyповідомляє йому зберігати ключ my.key(змінювати, як вважаєте за потрібне).
Вся справа працює без необхідності вводити будь-які клавіші введення :)
Для надсилання записів до інтерактивного сценарію:
echo -e "\n\n\n" | ssh-keygen -t rsa
ssh-keygenпадіння - ти додав це назад? {edited} Крім того, - ви не можете запускати сценарій не один раз - він змінює питання, щоб підтвердити, чи хочете ви перезаписати наявний _rsaфайл
yes ""замість echo -e "\n\n\n"( yesвиводить будь-який аргумент [або "за замовчуванням") у нескінченності - ідеально підходить для таких ситуацій, коли потрібно просто надати відповідь "так" на все, що може запропонувати програма). yesкоротше, і ssh-keygenколи-небудь слід додати запитання, на яке також буде відповідено автоматично. :)
версія з парольною фразою:
$ ssh-keygen -t rsa -b 4096 -C "comment" -P "examplePassphrase" -f "desired pathAndName" -q
Погодьтеся з Мішелем Марро, за винятком того, що йому потрібно ще трохи: Якщо файл вже існує, він все ще буде інтерактивним, запитуючи, чи потрібно його перезаписати.
Скористайтеся відповіддю на це запитання .
yes y | ssh-keygen -q -t rsa -N '' >/dev/null
Перенаправлення на null необхідне, щоб заглушити перезаписане повідомлення.
echo -e "\n"|ssh-keygen -t rsa -N ""
echo -eвипускається щось інше, ніж -eзовсім, що є не скрізь ssh-keygen).
ssh-keygen -N ''як частину автоматизованої процедури встановлення, і він зовсім не читає stdin, тому немає необхідності в echo( будь-якому echo варіанті), вкладеному в нього. (Зрозуміло, я вважаю, що stdin пов'язаний з /dev/nullмоїм випадком використання виробництва; могло бути інакше поведінка, коли він приєднаний до TTY, але краще відповідь, </dev/nullа не 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):
Для безпеки та працездатності рекомендується використовувати ed25519 .
yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""
тут
-o Формат ключів OpenSSH замість старих PEM (потрібен OpenSSH 6.5+)
-a Кількість тесту на первинність під час відбору кандидатів на DH-GEX
-t Тип ключа (ed25519, RSA, DSA тощо)
-f /mypath/bla Шлях та ім'я файлу виводу
-N "" Використовуйте порожню прохідну фазу
і yes "y"без взаємодії.
Він створить два файли
/mypath/bla
/mypath/bla.pub
де blaфайл приватний і bla.pubє загальнодоступним.