Key-Authentication
SSH 公鑰適用於 root 但不適用於使用者
可能重複:
我正在設置遠端伺服器。配置
sshd
為僅使用公鑰。遠端機器上有兩個具有相同的帳戶.ssh/authorized_keys
,因此我可以使用相同的密鑰登錄。兩者之一是root,當我嘗試時:ssh -i /path/to/privatekey root@remote.server
我進去了,沒問題。但是,當我嘗試其他(非特權)使用者時:
ssh -i /path/to/privatekey bob@remote.server
它失敗。
-v
揭示:debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering DSA public key: /path/to/privatekey debug1: Authentications that can continue: publickey debug1: Trying private key: /path/to/privatekey **debug1: key_parse_private_pem: PEM_read_PrivateKey failed** debug1: read PEM private key done: type <unknown> Enter passphrase for key '/path/to/privatekey':
成功的 root@server 登錄不會出現帶星號的行。這也很奇怪,因為
ssh-agent
已經有了這個密鑰的密碼;我沒有被詢問 root@server 登錄。失敗的 bob@server 登錄結束:debug1: read PEM private key done: type DSA debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey).
權限等
/home/bob/.ssh
是正確的*$$ but no execute bit on .ssh directory, see comments $$*. 這實際上是系統升級/重新安裝,我有以前的備份,/etc
包括sshd
配置。我沒有更改任何東西(儘管當我允許密碼驗證時,bob 可以進入),這就是我之前通過 git 使用系統的方式——所以我有一堆項目git remote
id 被鍵入通過 ssh 使用 bob@server ,並且不想改變這些,因為我不能sshd
像以前那樣工作……
請確認以下事項:
- 目錄的權限
.ssh
是700。進入目錄需要目錄的執行權限。- 文件的權限
authorized_keys
必須為 600。作為系統管理員,我也遇到過這種問題。