SSH 不允許 root 以外的使用者使用公鑰登入

SSH 不允許 root 以外的使用者使用公鑰登入

我安裝了 Ubuntu 22.04.1,並使用 pubkey + 私鑰驗證登入 ssh。

這是我採取的步驟

  1. 我首先在我的 Mac 上建立了一個金鑰對。
  2. 然後我進入伺服器並編輯/etc/ssh/sshd_config以添加用於 ssh 登入的新端口
  3. 在防火牆 (UFW) 中開啟該連接埠並關閉預設的 22。
  4. 我做了一個ssh-copy-id -i /path/to/public/key root@host將公鑰複製到伺服器上的操作。
  5. 然後/etc/ssh/sshd_config再次禁止密碼驗證
  6. 重新啟動 sshd 並測試與 root 的連線。連接工作得很好。
  7. 我重新啟用了密碼身份驗證,並使用我的 sudo 用戶(不是 root)之一在新連接埠上使用使用者名稱+密碼測試了 ssh。連接工作得很好。
  8. 我將ssh-copy-id -i /path/to/public/key user@host公鑰複製到該特定使用者的 .ssh/authorized_keys 中的伺服器上。該過程未返回任何錯誤,並報告複製了一把鑰匙。我登入伺服器並仔細檢查了authorized_keys文件,密鑰確實在那裡。
  9. 然後/etc/ssh/sshd_config再次禁止密碼驗證
  10. 重新啟動 sshd 並測試與使用者的連線。這就是我遇到問題的地方使用者無法登入Permission denied (publickey)。當我重新啟用密碼身份驗證時,我可以正常連接,但仍然沒有金鑰。只需一個標準的使用者名稱+密碼連線。

由於我對 root 使用者使用完全相同的組合,因此對金鑰對進行了測試。我想停用 Permitrootlogin 但不能。有任何想法嗎?

編輯:我遵循@Jos 的建議,並使用 root 和 user 進行了詳細的登入。這是 2 個結果。我已經過濾掉了所有敏感資訊和金鑰、IP 等,並將結果轉換為螢幕截圖:

使用詳細的 Root 調試連接

和使用者(無法連線):

用戶使用詳細調試連接

編輯:@steeldriver 建議執行 namei 檢查authorized_keys 檔案是否太寬鬆。這是輸出:

| => namei -l ~/.ssh/authorized_keys
f: /home/spitixorismesiti/.ssh/authorized_keys
drwxr-xr-x root             root             /
drwxr-xr-x root             root             home
drwxrwx--- spitixorismesiti spitixorismesiti spitixorismesiti
drwx------ spitixorismesiti spitixorismesiti .ssh
-rw------- spitixorismesiti spitixorismesiti authorized_keys

相關內容