Ответы:
Чтобы сгенерировать пару ключей 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, используйте:
ssh-keygen -f $Name -t rsa -N '""'
обратите внимание, что вы также должны убедиться, что каталог git bin находится на вашем пути:
$sshPath = "<path>\git\bin\"
$env:path += ";$sshPath"
Тогда использовать его в PoshGit это просто:
Add-SshKey "<path>\.shh\KeyFilename"
git\usr\bin
правильный реж.
ssh-keygen -f $Name -t rsq -N '""'
.
'""'
'""'
это единственный вариант, который работал для меня.
Просто поправка к ответу 2 ... Я обнаружил, что в моей системе OL и RHEL имя файла должно быть id_rsa, а не id.rsa.
Таким образом, в системе OL или RHEL команда будет выглядеть так:
$ ssh-keygen -f id_rsa -t rsa -N ''
id_rsa
это имя файла по умолчанию для ключа RSA, поэтому, если вы хотите придерживаться значения по умолчанию, вы не обязаны явно использовать эту -f
опцию.
-f
опцию, заключается в том, что вы можете выполнить это в скрипте. Вы можете просто подтвердить значение по умолчанию, чтобы отключить последующее приглашение.
Что о :
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''
Как отмечено в man ssh-keygen
:
SYNOPSIS
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile]
(...)
-q Silence ssh-keygen.
(то есть с openssh-client
пакетом в Debian 9.4 протяжения: OpenSSH_6.7p1 Debian-5+deb8u4
)
Мне нужно было автоматизировать в bash-скрипте команду ssh-keygen и окончательный ответ, который мне подходит:
echo -e "\n" | ssh-keygen -N "" &> /dev/null
Команда echo с параметром -e интерпретирует «\ n» как клавишу ввода, но не работает с парольной фразой. Затем, используя опцию -N "" (пустая фраза-пароль), пароль будет пустым и ничего не будет запрашивать. &> / dev / null отправит 'stdout' и 'stderr' в / dev / null, поэтому на дисплее ничего не печатается.