Відповіді:
Щоб створити ключ 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, щоб нічого не друкувалося через дисплей.