Sshd
當使用者的登錄名沒有密碼時,為什麼 sshd 不關心使用者不擁有他們的主目錄?
我在一段時間內看到的最奇怪的行為:
我有:
使用密碼和 ssh 密鑰設置 Linux 使用者帳戶。
- 當這個使用者擁有他們的主目錄時,他們可以使用 ssh 密鑰登錄。
- 當這個使用者不擁有他們的主目錄時,
sshd
抱怨:Authentication refused: bad ownership or modes for directory /path/to/home/user/
- 當我刪除 Linux 帳戶密碼時:此使用者可以使用他們的 ssh 密鑰登錄,但不擁有他們的主目錄。
笏?為什麼
sshd
不再關心他們擁有自己的主目錄?
這比您描述的要復雜一些(並且您省略了許多重要的細節來完全回答這個問題)。但是原始碼是一個很好的起點:
僅在執行公鑰認證時才發出失敗
父目錄很重要,只有在
sshd
可以stat()
嗎_- 該目錄由登錄使用者擁有或
root
在 Linux 上(platform_sys_dir_uid()
負責)- 該目錄不可被任何其他使用者寫入(只能為所有者設置寫入位)
這基本上符合你的前兩點,但不是第三點。你會改變或沒有註意到這一輪的其他事情。打開伺服器上的調試日誌並對其進行調查(或將其發佈到已編輯的問題中)。