無法透過 SSH 和公鑰與用戶 B 連線(用戶 A 可以)

無法透過 SSH 和公鑰與用戶 B 連線(用戶 A 可以)

解決了。user_B這是主目錄上的群組可寫位欺騙了我。

我對此已經沒有想法了。每一個提示都將受到高度讚賞。

考慮這個設定:

  • S運行 Ubuntu 的伺服器、使用者boldewynuser_Auser_B
  • 兩台筆記型電腦AB,每台都有一個本機使用者boldewyn(有一個id_rsa登入金鑰S)和第二個金鑰id_rsa_A/ id_rsa_B。所有密鑰都儲存在/home/boldewyn/.ssh.兩者都運行 Ubuntu。
  • user_A如果密碼為空,user_BS只能透過公鑰和 SSH 登入。

    +--------+            +-------------------+            +--------+
    | laptop |            |       server      |            | laptop |
    |   A    |            |         S         |            |   B    |
    |        |            |                   |            |        |
    +--------+    SSH     +-------------------+    SSH     +--------+
    |id_rsa_A|------------|< user_A   user_B >|------------|id_rsa_B|
    +--------+            +-------------------+            +--------+
    |id_rsa  |------------|<    boldewyn     >|------------|id_rsa  |
    +--------+            +-------------------+            +--------+
    

什麼有效:

  • 從任何筆記型電腦登入boldewyn(使用id_rsaS:/home/boldewyn/.ssh/authorized_keys

  • A以使用者身分從筆記型電腦登入user_A(使用id_rsa_AS:/home/user_A/.ssh/authorized_keys: ssh -i id_rsa_A user_A@S

我的問題:在筆記型電腦上,B完全相同的設定失敗user_B。我無法登錄S,因為出於某種原因,密鑰不被接受並且出現密碼提示(user_B沒有密碼,沒有選項)。

我檢查過的內容:

  • 在筆記型電腦上B

    • 檢查其權利~/.ssh及其所有內容
    • 將公共部分放入id_rsa_Bsboldewyn.authorized_keys:ssh -i id_rsa_B boldewyn@S有效(密鑰未損壞等)
    • ssh -vvv:嗯,並不是很有幫助:只是在某個時刻告訴我,它publickey現在跳過了方法。沒有給出理由。
  • 在伺服器上S

    • 三重檢查的user_Bs.authorized_keys文件
    • /home/*/.ssh檢查了及其所有內容的權利(特別是比較user_Auser_B
    • 檢查是否$HOME已設定(通過sudo -u user_B -i
    • 檢查,所有用戶都在/etc/ssh/sshd_configs中AllowUsersAllowGroups順便說一下,)

其他的東西:

我能想到的唯一區別user_Auser_B,我創建了後者adduser -M(不要創建主目錄;它之前已經存在)。然而,我仔細檢查了一遍,/home/user_B所有相關的孩子都屬於user_B他的主要群體。

答案1

你有沒有仔細檢查過/home/user_B(以及 和/home/user_B/.ssh/home/user_B/.ssh/authorized_keys具有適當的權限:除用戶外不可寫,即模式 755 或更嚴格?

答案2

我認為這可能與您產生這些密鑰的方式有關。我會再試一次。金鑰是使用 ssh-keygen 工具產生的。也許當生成一組密鑰時,在生成過程中使用了密碼短語。當系統提示您輸入密碼時,您可以嘗試直接按 Enter 鍵。將該密鑰的 pub 部分複製到 ubuntu。確保刪除 .ssh/authorized_keys 檔案中的違規條目。第二個想法:如果 cat pub 文件,請確保使用 >>(追加)而不是 >(將 pub 文件複製到authorized_keys 文件時替換_。(cat id_rsa.pub >> .ssh/authorized_keys)。

我有點驚訝。我在工作中使用了我的方法,使用 Solaris 和 Cygwin,在家中使用由 Centos、Slackware、Debian 和 Ubuntu 組成的 Linux Lan。是否有可能您的私鑰與公鑰不符?當您產生金鑰時,您會得到一對金鑰,公用金鑰將按照傳統方式複製到目標電腦主目錄下的 .ssh/authorized 金鑰檔案中。如果重新產生金鑰,則必須複製新的 .pub 檔案。新的私鑰不會與舊的公鑰配對。我注意到您的主目錄中似乎有一個 .authorized_keys 資料夾。我從來沒有嘗試過。我認為正常的放置位置是在 /home/user_name/.ssh/authorized_keys 資料夾中。我在使用 Solaris 6 及以上的任何版本、Freebsd 以及各種版本和風格的 Linux 時從未遇到過問題。祝你好運

艾倫

相關內容