неинтерактивный ssh-keygen в Windows PowerShell: создайте пару ключей и избегайте нажатия Enter для определения местоположения и пустой парольной фразы

Как в Windows PowerShell с помощью ssh-keygen создать пару ключей SSH с закрытым ключом, не имеющим кодовой фразы (пароля), без необходимости дважды подтверждать пустую кодовую фразу и без необходимости подтверждения местоположения?

ssh-keygen -q -t ed25519 -f id_ed25519 -N '' 

не работает. Он просто покажет вам обзор параметров:

option requires an argument -- N
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]
                  [-N new_passphrase] [-C comment] [-f output_keyfile]
       ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
       ssh-keygen -i [-m key_format] [-f input_keyfile]
       ssh-keygen -e [-m key_format] [-f input_keyfile]
       ssh-keygen -y [-f input_keyfile]
       ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
       ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
       ssh-keygen -B [-f input_keyfile]
       ssh-keygen -F hostname [-f known_hosts_file] [-l]
       ssh-keygen -H [-f known_hosts_file]
       ssh-keygen -R hostname [-f known_hosts_file]
       ssh-keygen -r hostname [-f input_keyfile] [-g]
       ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
       ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
                  [-j start_line] [-K checkpt] [-W generator]
       ssh-keygen -s ca_key -I certificate_identity [-h] [-U]
                  [-D pkcs11_provider] [-n principals] [-O option]
                  [-V validity_interval] [-z serial_number] file ...
       ssh-keygen -L [-f input_keyfile]
       ssh-keygen -A
       ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
                  file ...
       ssh-keygen -Q -f krl_file file ...

1 ответ
1

Это оно:

ssh-keygen -q -t ed25519 -f id_ed25519 -N '""'

И это также работает без «-q»:

ssh-keygen -t ed25519 -f id_ed25519 -N '""'

С этими параметрами вообще не будет запроса на нажатие Enter, пара ключей без пароля будет создана напрямую.

Вам нужно два параметра:

-N '""'

— это то, как PowerShell будет понимать параметр как пустую парольную фразу (снова одно из этих исключений Windows …). Имейте в виду, что для других командных подсказок требуется просто «» или «» (на ваше усмотрение).

И:

-f MY_FILENAME

или же

-f MY_PATH_MY_FILENAME

Значение: вы можете добавить путь к этому имени файла, иначе вы сохраните его «там, где вы находитесь». Стандартным расположением, если вы не передали этот параметр в Windows, является C:UsersAdmin.ssh

Это взято из Автоматизируйте ssh-keygen -t rsa, чтобы он не запрашивал кодовую фразу, и я повторяю это в новом вопросе для случая PowerShell, так как я не нашел решение достаточно быстро. Если вы перейдете по первым ссылкам, которые найдете в сети и на Stack Exchange, вы подумаете, что » или «» — это глобальный формат для пустого пароля, и вы, вероятно, переопределите особый случай PowerShell, даже если он упоминается где-нибудь, так как вы не ожидаете, что это будет исключением! Вот почему это исключение уже должно быть подчеркнуто в заголовке вопроса, чтобы привлечь ваше внимание.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *