Cygwin не может сгенерировать ssh keygen

Cygwin не может сгенерировать ssh keygen

Я хочу сгенерировать ssh-keygen через cygwin, но при вводе пути возникает проблема (ничего не происходит).

Здесь я просто нажимаю Enter и ничего не происходит:

введите описание изображения здесь

решение1

Я думаю, что вы, вероятно, не используете Cygwin ssh-keygen- что which ssh-keygenпоказывает? Не-Cygwin ssh-keygenв моей системе (которая была установлена ​​с помощью PuTTY или WinSCP, я не помню, с помощью чего) ведет себя так же, но его можно заставить работать с помощью:

ssh-keygen -t rsa -f /cygwin64/home/me/.ssh/id_rsa -N "passphrase"

Примечание:

  1. Вставьте свою собственную парольную фразу вместо passphraseили -N ""для пустой парольной фразы
  2. Путь имеет странный формат и находится в корне C:. У меня установлен cygwin в , поэтому в этом примере C:\cygwin64ключи находятся в моем домашнем каталоге Cygwin ( ). Сначала сделайте это.~/.ssh.ssh

Или вы можете просто установить Cygwin ssh-keygen. which ssh-keygenПосле этого должно вернуться /usr/bin/ssh-keygen.

решение2

Используйте прямую косую черту для путей Cygwin. Обратная косая черта — это «экранирующий символ» в Linux (и, следовательно, также в Cygwin).

$ cygpath --help

cygpathпомогает преобразовать пути+имена файлов для/из/в cygwin.

Подсказка: используйте пути Linux в cygwin, а пути Windows в windows.

Непроверенный пример:
$ cygpath -u "C:\Users\User/.shhs/id_rsa" /cygdrive/c/UsersUser/.shhs/id_rsa


То, что вы ввели в своем примере ( C:\Users\User/.shhs/id_rsa), в конечном итоге равно C:UsersUser/.shhs/id_rsa- что, скорее всего, не то, что вам нужно.

«Символ Escape» лишает специального значения следующий за ним символ, обычно специальный символ, оставляя символ буквально таким, какой он есть, во вводе (это еще не все, но этого достаточно).

Пример:

$ echo \$ПУТЬ=$ПУТЬ
$ПУТЬ=...
$

решение3

Рассмотрите возможность использованияСборка OpenSSH от Microsoft. Толькоскачать OpenSSH-Win32.zipили OpenSSH-Win64.zip, извлеките ssh-keygen.exeи используйте — установка не требуется, нет зависимостей (от Cygwin или чего-либо еще).

Если у вас Windows 10 версии 1803 или новее, у вас уже есть встроенный OpenSSH. Для более старых версий вы также можете легко установить его какДополнительная функция «Клиент OpenSSH».

Смотрите такжеУстановка клиента OpenSSH SFTP на Windows 7.

решение4

Тред Tumbleweed, я знаю, но я нашел решение. Проблема в том, что он пытается использовать собственный двоичный файл Windows openssh, и пути к каталогам конфликтуют.

яудалил клиент Windows openssh, переустановил cygwin с помощью скомпилированных cygwin двоичных файлов openssh, и теперь он ssh-keygenработает именно так, как и должен.

Также стоит отметить, что другие вещи не работали (например, rsync), что, вероятно, было связано с той же причиной.

Связанный контент