Fedora16で
公開鍵を/home/user/.ssh/authorized_keysファイルにコピーしました。ユーザーはldapから取得されます。
しかし、このユーザーのパスワードなしでssh経由で認証できませんでした。
Rootで動作します。
sshdのstrace
[pid 24834] setgroups(1, [1100]) = 0
[pid 24834] getgroups(0, NULL) = 1
[pid 24834] getgroups(1, [1100]) = 1
[pid 24834] setgroups(1, [1100]) = 0
[pid 24834] setresgid(-1, 1100, -1) = 0
[pid 24834] setresuid(-1, 1040, -1) = 0
[pid 24834] open("/home/user/.ssh/authorized_keys", O_RDONLY|O_NONBLOCK) = -1 EACCES (Permission denied)
ls -l
authorized_keysファイル:
-rw-r--r--. 1 user user 784 19 nov. 16:24 authorized_keys
私は他のFedora 16と比較しました:
~/
、~/.ssh/
、~/.ssh/authorized_keys
に対する同じ権限そして今、私はそれをトラブルシューティングするために何をしようとするべきか分かりません。
SELinuxの可能性があります。ファイルのコンテキストが正しくない場合、これをroot
として実行すると修正されます。
restorecon -Rv /home/user/.ssh
また、/home/user/.ssh
の権限がワイドオープンではないことを確認してください。 SSHDはこれに非常に特別です。
chmod 0700 /home/user/.ssh
きみの authorized_keys
ファイルには権限が必要ですrw-------
。実行:
chmod 600 ~/.ssh/authorized_keys
そして、メモとしてあなたの秘密鍵(通常はid_rsa
)クライアントでは同じ権限が必要です。
同様の問題が発生しました。私の場合、原因は.sshディレクトリと.ssh/authorized_keysファイルの両方の所有権が間違っていたことです。これを修正するには、/ home/userでrootとして次のようにします。
chown user:user .ssh
chown user:user .ssh/authorized_keys
Freddenの回答(コメントする十分な評判がない)に加えて、sshd_configでLogLevel DEBUG3
を設定(およびsshdサービスを再起動)した後、/ var/log /安全:
datetime servername sshd[11180]: debug1: Could not open authorized keys '/authorized_keys/authorized_keys': Permission denied
フォルダーとファイルに正しいアクセス許可(それぞれ700と600)があるにもかかわらず。
SElinux(私の場合はそうであることが判明)の可能性があると思われる場合は、/ var/log/audit/audit.logを調べてファイル名(この場合はauthorized_keys)を検索して確認できます。これが原因である場合は、type = AVCの拒否エントリが見つかります。
SELinuxをpermissiveモードにしただけです。これはおそらく最善のアプローチではありませんが、時間が足りず、修正されました。これが適切であることに気づかなかったため(最初はSELinuxが問題の原因であることを認識していなかったため)、後で[restorecon -Rv /home/user/.ssh
]を試しませんでした。