Key-Authentication

SSH 公鑰適用於 root 但不適用於使用者

  • December 6, 2012

可能重複:

為什麼我仍然會收到帶有公鑰身份驗證的 ssh 密碼提示?

我正在設置遠端伺服器。配置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 remoteid 被鍵入通過 ssh 使用 bob@server ,並且不想改變這些,因為我不能sshd像以前那樣工作……

請確認以下事項:

  1. 目錄的權限.ssh是700。進入目錄需要目錄的執行權限。
  2. 文件的權限authorized_keys必須為 600。

作為系統管理員,我也遇到過這種問題。

引用自:https://unix.stackexchange.com/questions/57769