this thread で説明されているのとまったく同じ問題がありますが、ユーザーのホームディレクトリがローカル。
クライアント側(Windows 7、PuTTYのPAGEANT、PUTTYGEN、およびPLINK)ですべてを適切に構成したと思いますが、公開鍵メカニズムを機能させていないようです(パスワードベースのsshログインは機能します)。私はすべてのステップ、手がかり、ヒントを以下に示しました:
サーバー側(Linux、sshd)で何か不足している可能性があるので、現在の/etc/ssh/sshd_config
コンテンツを投稿します。
Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server
私が間違っていることは何か考えていますか?
UPDATE:sshd in debug mode を実行するためのヒントを見つけました。ここに出力があります:
/home/winwin> /usr/sbin/sshd -d
debug1: sshd version OpenSSH_4.2p1
debug1: read PEM private key done: type RSA
debug1: private Host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private Host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7
debug1: inetd sockets after dupping: 3, 3
Connection from 192.168.1.8 port 49828
debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60
debug1: no match: PuTTY_Release_0.60
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2
debug1: permanently_set_uid: 74/74
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-ctr hmac-sha1 none
debug1: kex: server->client aes256-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug1: userauth-request for user winwin service ssh-connection method none
debug1: attempt 0 failures 0
debug1: PAM: initializing for "winwin"
debug1: PAM: setting PAM_RHOST to "win7client"
debug1: PAM: setting PAM_TTY to "ssh"
Failed none for winwin from 192.168.1.8 port 49828 ssh2
debug1: userauth-request for user winwin service ssh-connection method publickey
debug1: attempt 1 failures 1
debug1: test whether pkalg/pkblob are acceptable
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
Failed publickey for winwin from 192.168.1.8 port 49828 ssh2
Received disconnect from 192.168.1.8: 14: No supported authentication methods available
debug1: do_cleanup
debug1: PAM: cleanup
debug1: do_cleanup
debug1: PAM: cleanup
今、私は2つのbad ownership or modes for directory /home/winwin
メッセージに気づきましたが、ディレクトリ/ home/winwinとAFAICTの所有権またはモードを確認しました。
/home> ls -lad winwin
drwxrwxr-x 21 winwin winwin 4096 Jul 13 21:24 winwin
そして:
/home/winwin> ls -lad .ssh
drwxr-xr-x 2 winwin winwin 4096 Jul 14 12:06 .ssh
そして:
/home/winwin/.ssh> ls -lad *
-rw-r--r-- 1 winwin winwin 210 Jul 14 12:06 authorized_keys
-rw-r--r-- 1 winwin winwin 210 Jul 14 01:58 authorized_keys.pub
-rw-r--r-- 1 winwin winwin 394 Jul 14 01:57 authorized_keys.pub.orig
何が間違っているのでしょうか?
アップデートII:以下の回答で提案されているようにchmod 600
を試しました:
/home/winwin> ls -lad .ssh
drw------- 2 winwin winwin 4096 Jul 14 13:13 .ssh
そして:
/home/winwin/.ssh> ls -lad *
-rw------- 1 winwin winwin 210 Jul 14 12:06 authorized_keys
しかし、それでも機能しません。それでもAuthentication refused: bad ownership or modes for directory /home/winwin
エラーが発生するのはなぜですか?
成功!
私がしなければならなかったのは、StrictModes
をnoに変更することだけです。
OpenSSHの セクション3.14 あたりFAQおよび http://blogs.nullvision.com/?p=114 。
ワオ。
ホームディレクトリからグループの書き込み可能な権限を取得してみてください。
chmod g-w ~/
.sshフォルダーを読み取り可能/書き込み可能/実行可能にする自分だけ:
chmod 700 ~/.ssh
承認済みのキーファイルを読み取り可能/書き込み可能にしますあなただけが:
chmod 600 ~/.ssh/authorized_keys
これにより、アクセス許可エラーが削除されます。
同様の問題がありました。ぶらぶらしていたときに、ホームディレクトリが暗号化されていることに気づき、それが問題であると疑いました。承認済みのキーファイルを暗号化されたホームディレクトリの外部のディレクトリにコピーし、権限を適切に変更しました(chmod 700 [dir]、chmod 600 [dir]/authorized_keysなど)。
次に、sshd_configを編集して、承認された鍵ファイルの新しい場所をsshdに伝え、sshdを再起動します。これで完了です。
私の問題は解決したようです。
ホームディレクトリ(またはおそらく.ssh/authorized_keysフォルダー)に対する権限が正しくないようです。これらを修正すると、ログインの問題が修正されます。 chmod 600 /home/winwin/.ssh/*
をお試しくださいchmod 700 /home/winwin/.ssh
も必要になる場合があります。
セキュリティ上のリスクがあるため、ユーザー(所有者)以外のユーザーがauthorized_keys
ファイルに書き込める場合、SSHdはそのファイルのロードを拒否します。
私はこれに苦労し、最終的にStrictModesNoのような潜在的なセキュリティ違反を引き起こさない解決策を見つけました。
設定が次のようになっていることを確認してください。
chmod 0755/home/{userdir}
chmod 0700 /home/{userdir}/.ssh
chmod 0600 /home/{userdir}/.ssh/authorized_keys
ここで、{userdir}は問題のディレクトリです。
キーはchmod 0755で、ユーザーのみがホームドライブに書き込むことができるようにします。機能したユーザー設定からこれをコピーし、presto!他のユーザー名も機能し始めました!
これが私のように他の人を助け、あなたの時間を数時間節約してくれることを願っています。
このエラーメッセージは、sshdがauthorized_keys
にアクセスできないようにするSELinuxによっても発生します。これを試して:
restorecon -FRvv ~/.ssh
(から この答え )
私の場合、それは別の所有者がいたホームディレクトリ(ルート)であり、このホームディレクトリが属する実際のユーザー(別のユーザーのルートでホームディレクトリを作成するときの私の愚かさ)よりもです。
Chown [user]:[group] /home/[user]
この問題を解決しました(もちろん、他の回答で共有されているファイル/ディレクトリの権限に固執します)。
chown -R winwin.winwin /home/winwin/
chmod 700 /home/winwin/
find /home/winwin/ -type d -exec chmod 700 {} \;
find /home/winwin/ -type f -exec chmod 600 {} \;