Мне нужно автоматизировать ssh-keygen -t rsa
без пароля, т.е. введите в приглашении.
Как я могу сделать это из сценария оболочки?
164
Чтобы сгенерировать пару ключей SSH без запроса пароля, вы можете сделать следующее:
$ ssh-keygen -f id_rsa -t rsa -N ''
ssh-keygen: option requires an argument -- N
" :(dzdo
команду перед ним, поэтому мне пришлось написать:dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N "''"
-N ''
имеет большое значение. Когда я добавил пробел, это удалось!Если вам нужно сделать это из PowerShell в Windows, используйте:
обратите внимание, что вы также должны убедиться, что каталог git bin находится на вашем пути:
Тогда использовать его в PoshGit это просто:
источник
git\usr\bin
правильный реж.ssh-keygen -f $Name -t rsq -N '""'
.'""'
'""'
это единственный вариант, который работал для меня.источник
Просто поправка к ответу 2 ... Я обнаружил, что в моей системе OL и RHEL имя файла должно быть id_rsa, а не id.rsa.
Таким образом, в системе OL или RHEL команда будет выглядеть так:
источник
id_rsa
это имя файла по умолчанию для ключа RSA, поэтому, если вы хотите придерживаться значения по умолчанию, вы не обязаны явно использовать эту-f
опцию.-f
опцию, заключается в том, что вы можете выполнить это в скрипте. Вы можете просто подтвердить значение по умолчанию, чтобы отключить последующее приглашение.Что о :
Как отмечено в
man ssh-keygen
:(то есть с
openssh-client
пакетом в Debian 9.4 протяжения:OpenSSH_6.7p1 Debian-5+deb8u4
)источник
Мне нужно было автоматизировать в bash-скрипте команду ssh-keygen и окончательный ответ, который мне подходит:
Команда echo с параметром -e интерпретирует «\ n» как клавишу ввода, но не работает с парольной фразой. Затем, используя опцию -N "" (пустая фраза-пароль), пароль будет пустым и ничего не будет запрашивать. &> / dev / null отправит 'stdout' и 'stderr' в / dev / null, поэтому на дисплее ничего не печатается.
источник
источник