我在同一台電腦上有兩個用戶,並且正在嘗試為用戶#2 設定 SSH。 SSH 仍然要求第二個使用者輸入密碼,因此我將 .rsa 檔案從 user#1 複製到 user#2。儘管它們具有相同的檔案和權限,並且不需要使用者#1 提供密碼,但 SSH 仍然要求使用者#2 提供密碼。什麼可能導致同一台電腦上具有相同 .rsa 檔案的兩個使用者從 SSH 獲得不同的回應?
答案1
主目錄中從 root 開始一直到 .ssh 目錄的所有目錄都不能具有「group」或「其他」的寫入權限。這是 ssh 提高安全性的要求。如果沒有這樣設定權限,攻擊者將有辦法進入並修改或複製 .ssh,從他們具有寫入權限的第一個目錄開始,並將私鑰複製到他們選擇或更新的另一個使用者金鑰由他們選擇,從而允許他們欺騙您並在您使用ssh 時登錄,而不被要求輸入密碼。因此,如果沒有足夠的權限進行適當的保護,.ssh 金鑰將無法運作。
答案2
我在下面回答假設user1 和 user2 位於遠端伺服器上,並且您正在本機使用私鑰連接到該伺服器。
如果您嘗試使用本機 user1/user2 帳戶連接到遠端伺服器,那麼我的答案不適用。
在遠端伺服器上,您需要將公鑰的內容新增至:
~/.ssh/authorized_keys
該文件的內容將如下所示:
答案3
之前有人給了合理的答案(他們肯定已經刪除了),提示 .rsa 和包含的檔案的權限不正確。儘管這不是問題,但它幾乎是正確的。事實證明,所有指向 .rsa 的資料夾都需要有適當的權限。
一旦我將它們設為相同,無提示 ssh 就會起作用,第一次提示接受主機金鑰,但下次連線時則不再提示。
[root@computer ~]# ls -ld /home/user2 /home/user1
drwxrwx--- 24 user2 user2 4096 Jun 2 13:13 /home/user2
drwxr-xr-x 97 user1 user1 12288 Jun 2 13:06 /home/user1
[root@computer ~]# chmod -v 755 /home/user2
mode of `/home/user2' changed to 0755 (rwxr-xr-x)
[root@computer ~]# ls -ld /home/user2 /home/user1
drwxr-xr-x 24 user2 user2 4096 Jun 2 13:13 /home/user2
drwxr-xr-x 97 user1 user1 12288 Jun 2 13:06 /home/user1