題 為什麼我必須使用sudo進行ssh公鑰認證才能工作?


除非我使用sudo,否則我無法從計算機(OS X)ssh到我的覆盆子pi(ubuntu mate)。我正在使用公共/私人密鑰對進行身份驗證。

相應的公鑰被添加到raspberry pi上的authorized_users文件中。

我的.ssh目錄的權限是700。 我的密鑰文件的權限是600。

這是帶有-v標誌的ssh的輸出:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/username/.ssh/id_rsa
debug1: Authentications that can continue: publickey 
debug1: Trying private key: /Users/username/.ssh/id_dsa
debug1: No more authentication methods to try. Permission denied (publickey).

LS:

-rw------- 1 username staff 3326 May 18 23:24 id_rsa 
-rw-r--r-- 1 username staff 752 May 18 23:24 id_rsa.pub 

的.ssh:

drwx------  11 username   staff    374 May 19 21:49 .ssh

3
2018-05-20 01:45


起源


你檢查過了嗎 username 絕對擁有 .ssh 及其內容? - Paul
@Paul是適當的用戶擁有.ssh目錄及其內容 - IMerin
和.ssh目錄本身?請 編輯 如果您有更多信息要添加到問題中 - Paul
@Paul,補充說.ssh信息 - IMerin
等等,當你做sudo時,它使用root .ssh目錄。你用什麼用戶名登錄到rpi? - Paul


答案:


您可能通過共享來共享root的ssh密鑰 sudo 你什麼時候做的 ssh-copy-id。確保 username的公鑰也在 authorized_keys 在目的地


1
2018-05-20 01:56



authorized_users中的密鑰與我的非root公鑰相同 - IMerin
所以,如果你這樣做,比方說, md5sum 雙方 id_rsa.pub 和 authorized_keys 他們是一樣的嗎? (假設你只有authorized_keys中的一個密鑰。大概如果它與sudo一起使用它也應該匹配 /root/.ssh/id_rsa.pub 文件,這三個都一樣嗎? - Eric Renouf
authorized_key中有多個鍵。我相信問題是當我想以特定用戶身份登錄時,我正在登錄我的覆盆子pi上的根目錄。我將物理訪問機器並檢查用戶的authorized_key文件 - IMerin
啊,當你這樣做的時候 sudo 您的默認用戶連接將是root而不是 username - Eric Renouf


這裡似乎有脫節。你一直說author_users;其他人繼續說authorized_keys。 用戶的公鑰在名為.ssh / authorized_keys的文件中放入用戶的主目錄,而不是.ssh / authorized_users。由於ssh適用於root,你可能想查看~root / .ssh的目錄並使~user_name / .ssh的目錄看起來一樣 - 當然,除了那個用戶的密鑰之外的密鑰,不是root。


1
2018-05-21 00:18



謝謝,授權用戶/ authorized_keys的事情就是我輸錯了名字。問題原來是root擁有/ etc / ssh目錄,而不是username。我修好了,一切似乎都正常 - IMerin
用戶永遠不應該擁有/ etc目錄中的任何文件。它們需要/ etc / ssh的讀取和執行權限以及對目錄中大多數文件的讀取權限,例外是私鑰文件和sshd文件。如果用戶擁有/ etc中的文件,他們可以給自己寫入權限並影響系統上的所有其他用戶,包括root用戶。 - froth