為什麼 OPENSSH 嘗試開啟 C:\Windows\.ssh\authorized_keys 而不是使用者目錄?

為什麼 OPENSSH 嘗試開啟 C:\Windows\.ssh\authorized_keys 而不是使用者目錄?

使用 OpenSSH for Windows,我嘗試使用公鑰設定 SFTP。

我的錯誤日誌顯示了這一點:

12080 2020-03-20 11:51:02.136 debug3: Failed to open file:C:/Windows/.ssh/authorized_keys error:2
12080 2020-03-20 11:51:02.136 debug1: Could not open authorized keys 'C:\\Windows\\.ssh/authorized_keys': No such file or directory

在 sshd_config 中我們配置了一個用戶,如下所示:

Match User testuser
    ChrootDirectory E:\Integration\SFTP\TestUser 
    PasswordAuthentication no
    PubkeyAuthentication yes

那麼軟體不應該去E:\Integration\SFTP\TestUser\.ssh\authorized_keys取得金鑰檔案嗎?

然後作為測試,我將使用者的authorized_key複製到c:\Windows..sh目錄,然後出現以下錯誤:

debug1: trying public key file C:\\Users\\testuser\\.ssh/authorized_keys
debug3: Failed to open file:C:/Users/testuser/.ssh/authorized_keys error:2
debug1: Could not open authorized keys 'C:\\Users\\testuser\\.ssh/authorized_keys': No such file or directory

當我將密鑰放入上面的目錄時,它就起作用了。那麼 ChrootDirectory 僅適用於傳送和接收的檔案來源,不適用於 .ssh 檔案?接下來我將嘗試從 C:\Windows 中刪除...

我刪除了檔案 C:\Windows.ssh\authorized_keys,它仍然有效。那麼也許當找不到使用者時,它會轉到 C:\Windows 目錄作為其備份來源?

答案1

當我手動建立使用者資料夾而不是使用實際使用者帳戶登入時,我遇到了錯誤「C:\Windows\.ssh/authorized_keys':沒有這樣的檔案或目錄」的情況。

我的情況是透過以下方式解決的:

  1. 重新命名/刪除手動建立的使用者資料夾
  2. 使用實際用戶帳號登錄
  3. 建立/複製 .ssh 資料夾和authorized_keys 文件
  4. 檢查.ssh資料夾和authorized_keys檔案的存取權限

相關內容