Відповіді:
Щоб створити ключ 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" як клавішу Enter, але не працює з парольною фразою. Тоді за допомогою параметра -N "" (порожня парольна фраза) пароль буде порожнім і нічого не запитуватиме. &> / dev / null надсилає 'stdout' і 'stderr' в / dev / null, щоб нічого не друкувалося через дисплей.