web-dev-qa-db-ja.com

authorized_keyファイルで権限が拒否されました

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)
  • ユーザーアカウントでファイルにアクセスしようとしましたが、問題ありません。
  • 上記と同じオプションを持つ小さなCプログラムを試してみましたが、問題ありません。
  • 私は777の権利で試しました:問題ありません。

ls -lauthorized_keysファイル:

-rw-r--r--. 1 user user  784 19 nov.  16:24 authorized_keys
  • 私はStrictModeを無効にしようとしました(そしてsshdを再起動しました)

私は他のFedora 16と比較しました:

  • 同じOS
  • 同じsshd_configファイル
  • ~/~/.ssh/~/.ssh/authorized_keysに対する同じ権限

そして今、私はそれをトラブルシューティングするために何をしようとするべきか分かりません。

7
trax

SELinuxの可能性があります。ファイルのコンテキストが正しくない場合、これをrootとして実行すると修正されます。

restorecon -Rv /home/user/.ssh

また、/home/user/.sshの権限がワイドオープンではないことを確認してください。 SSHDはこれに非常に特別です。

chmod 0700 /home/user/.ssh
8
fredden

きみの authorized_keysファイルには権限が必要ですrw-------。実行:

chmod 600 ~/.ssh/authorized_keys

そして、メモとしてあなたの秘密鍵(通常はid_rsa)クライアントでは同じ権限が必要です。

2
heavyd

同様の問題が発生しました。私の場合、原因は.sshディレクトリと.ssh/authorized_keysファイルの両方の所有権が間違っていたことです。これを修正するには、/ home/userでrootとして次のようにします。

chown user:user .ssh
chown user:user .ssh/authorized_keys
1
herman

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]を試しませんでした。

0
AutoMattTick