Cygwin 無法產生 ssh 金鑰產生器

Cygwin 無法產生 ssh 金鑰產生器

我想透過 cygwin 產生 ssh-keygen,但輸入路徑時出現問題(它不執行任何操作)。

這裡我只是按回車鍵,什麼也沒做:

在此輸入影像描述

答案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-keygenwhich ssh-keygen然後應該返回/usr/bin/ssh-keygen

答案2

對 cygwin 路徑使用正斜杠,反斜杠是 linux 中的“轉義字符”(因此也在 cygwin 中)

$ cygpath --幫助

cygpath幫助將路徑+檔案名稱轉換為/從/到 cygwin。

提示:在cygwin中使用Linux路徑,在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- 這很可能不是您想要的。

「轉義字元」從其後面的字元(通常是特殊字元)中獲取特殊含義,將字元按字面意思保留在輸入中(還有更多內容,但這裡已經足夠了)。

例子:

$回顯\$PATH=$PATH
$路徑=...
$

答案3

考慮使用Microsoft 建構的 OpenSSH。只是下載 OpenSSH-Win32.zip或者OpenSSH-Win64.zip,解壓縮ssh-keygen.exe並使用 – 無需安裝,沒有依賴項(在 Cygwin 或其他任何東西上)。

如果您使用的是 Windows 10 版本 1803 或更高版本,則您已經內建了 OpenSSH。對於舊版本,您還可以輕鬆地將其安裝為選用功能 “OpenSSH 用戶端”

也可以看看將 OpenSSH SFTP 用戶端安裝到 Windows 7

答案4

風滾草線程,我知道,但我找到了解決方案。問題在於它嘗試使用本機 Windows openssh 二進位檔案並且目錄路徑發生衝突。

刪除了 Windows openssh 用戶端,使用 cygwin 編譯的 openssh 二進位檔案重新安裝了 cygwin,現在它的ssh-keygen工作方式與應有的完全一樣。

另外值得注意的是,其他事情也失敗了(例如 rsync),原因可能相同。

相關內容