SSH 要求一個用戶輸入密碼而不是另一個用戶

SSH 要求一個用戶輸入密碼而不是另一個用戶

我在同一台電腦上有兩個用戶,並且正在嘗試為用戶#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

相關內容