
我能夠在 cygwin 上安裝和配置 openssh 並且運行正常,但有一個問題:我無法使用私鑰/公鑰身份驗證,它不起作用。
我按照與 Linux 上相同的步驟操作,添加了我的密鑰,~/.ssh/authorized_Keys
但它沒有找到它。
我也檢查過/var/log/sshd.log
,但它是空的並且具有以下權利:
-rw-r--r-- 1 cyg_server None 0 Aug 21 12:53 sshd.log
drwx------+ 1 Administrator None 0 Aug 21 12:57 .ssh
-rw-r--r-- 1 Administrator None 395 Aug 21 12:57 authorized_hosts
我缺什麼?
答案1
如果檔案名稱是 acually ~/.ssh/authorized_Keys
,則需要將檔案名稱中的 K 小寫
如果不是這樣,請嘗試ssh -v
對系統進行操作。這應該會給你一些更多的資訊。
答案2
這可能是由於未設定 HOME 環境變數造成的。結果是什麼echo $HOME
?實際上解析到哪個完整路徑~/.ssh/authorized_Keys
?
另外,我認為authorized_keys檔案的檔案名稱應該全部小寫。
最後,cygwin 似乎存在一些奇怪的權限問題。嘗試將 .ssh 目錄及其內容的權限設為 600(而不是 700)。如果這不起作用,我找到了一些cygwin 郵件列表上的舊帖子由於某些原因,.ssh 目錄及其內部所有檔案的擁有者必須是 SYSTEM.SYSTEM。
如果這一切都不起作用,請檢查您的 Windows 事件日誌。我相信預設情況下,cygwin 的 sshd 會記錄在那裡而不是 in sshd.log
(儘管我不知道為什麼它會在這種情況下建立日誌檔案)。
答案3
Windows 10 1909
我透過檢查日誌Event Viewer -> Windows Logs -> Application -> sshd(Source column)
並設定檔案的所有權和權限解決了這個問題home, .ssh and authorized_keys
,如下所示
chown Gowtham:none ~/
chmod g-w ~/
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys