Ответ 1
Просто введите пропуск void, используя флаг -N
:
ssh-keygen -t rsa -N ""
со страницы руководства:
-N new_passphrase Provides the new passphrase.
Перезаписать id_rsa
yes y |ssh-keygen -q -t rsa -N '' >/dev/null
Я хочу автоматизировать создание пары ssh-ключей с помощью оболочки script на Centos7, и я пробовал
yes "y" | ssh-keygen -t rsa
echo "\n\n\n" | ssh-keygen...
echo | ssh-keygen..
вся эта команда не работает, просто введите один 'enter', а оболочка script остановлена на "Введите кодовую фразу (пустую без кодовой фразы)", Я просто хочу знать, как моделировать mutiple 'enter' в оболочке непрерывно.
Большое спасибо, если кто-нибудь может помочь!
Просто введите пропуск void, используя флаг -N
:
ssh-keygen -t rsa -N ""
со страницы руководства:
-N new_passphrase Provides the new passphrase.
Перезаписать id_rsa
yes y |ssh-keygen -q -t rsa -N '' >/dev/null
Если вы не хотите запрашивать пользователя для файла, в котором следует сохранить ключ, вы можете добавить флаг вывода файла -f
в команду.
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
Таким образом, пользователю не будет предложено вводить какие-либо данные - не существует файлов id_rsa.
Для меня, я должен был использовать комбинацию ответа @Lukasz и @Juan один, при использовании в команде ssh
ssh -p$SSH_PORT -q [email protected]$INSTANCE_IP 'yes y | ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa'
Ни один из ответов не делает именно то, что ожидается. Требуемое поведение: запустите ssh-keygen с настройками по умолчанию (например, если мы только что нажали Enter), не запрашивая ввода.
Команда для запуска:
yes '' | ssh-keygen -N >/dev/null
пропустите>/dev/null, если вы хотите напечатать вывод.
Expalaination:
да y спам, который ssh-keygen воспринимает буквально и создает ключи в $ PWD/y и $ PWD/y.pub. да '' спамит пустые строки (Enter), что мы и хотим. Задать файл с помощью -f ~/.ssh/id_rsa не удастся, если каталог .ssh не существует. Опция -t rsa не требуется, если rsa является типом по умолчанию (мы в любом случае вводим спам). Ключевая фраза не читается из стандартного ввода (который мы вводим спамом), а непосредственно с клавиатуры, поэтому ничто не может его перехватить. По этой причине вам нужно указать -N '' для пустой парольной фразы.