切断:サポートされている認証方法はありません


12

このスレッドで説明したのとまったく同じ問題がありますが、ユーザーのホームディレクトリローカルであるため、そこに受け入れられた答えは適切なものではありません。

クライアント側(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

私が間違っていることを知っていますか?

更新:デバッグモードsshdを実行するためのヒントを見つけました。出力は次のとおりです。

/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エラーが発生するのはなぜですか?

回答:


9

グループの書き込み可能なアクセス許可をホームディレクトリから取得してみてください。

chmod g-w ~/

自分だけが.sshフォルダーを読み取り可能/書き込み可能/実行可能にする

chmod 700 ~/.ssh

承認されたキーファイルを自分だけが読み取り/書き込みできるようにします

chmod 600 ~/.ssh/authorized_keys

これにより、アクセス許可エラーが削除されます。


あなたが示唆したように私はやった~/.ssh~/.ssh/authorized_keys。まだ運がありません。ホームディレクトリ自体からグループの書き込み可能なアクセス許可を取得することに関しては、このユーザー/グループが作成された目的全体を損なうため、私はそれを行うことができません。このユーザーのホームディレクトリは、グループによって書き込み可能である必要があります(正確な名前とgidが同じ!)。支援を試みるための+1。
WinWin

ありがとうございました!chmod g-w ~/ユーザーの1人に代わってパテでsshできず、他のユーザーが
正常に機能

Gah yaありがとう、他のユーザーと一緒にホームディレクトリを作成しましたが、chmod gwがありませんでした〜/
クラレンス

5

成功!

私がやらなければならなかったことはStrictModesノーに変えることだけです。

パーセクション3.14はOpenSSH FAQとでhttp://blogs.nullvision.com/?p=114

ワオ。


でも、それは解決策というよりは回避策です。私の箱で何かをチェックしましょう。
ロブ

ls -lad .sshはdrwxを表示しているのでchmod 700 ~/.ssh、中のファイルはすべて-rwなので、chmod 600 ~/.ssh/*-SHOULD-動作します。
ロブ

ネヴァーマインド、見て、このユーザーのホームディレクトリが(!まったく同じ名前とgidを持つ)のグループによって書き込み可能である必要があります下に
ロブ・

この方法はユーザーレスです!

3

同様の問題がありました。いろいろと調べてみると、ホームディレクトリが暗号化されていることに気づき、それが問題だと疑った。許可されたキーファイルを暗号化されたホームディレクトリ以外のディレクトリにコピーし、権限を適切に変更しました(chmod 700 [dir]、chmod 600 [dir] / authorized_keysなど)。

次に、sshd_configを編集して、許可されたキーファイルの新しい場所をsshdに通知し、sshdを再起動します。

私の問題を解決したようです。


2

ホームディレクトリ(または.ssh / authorized_keysフォルダー)に対する権限が間違っているようです。これらを修正すると、ログインの問題が修正されます。試してみるchmod 600 /home/winwin/.ssh/*
必要があるかもしれませんchmod 700 /home/winwin/.ssh

SSHdはauthorized_keys、セキュリティリスクであるため、(所有者として)ユーザー以外のユーザーがファイルに書き込むことができる場合、ファイルの読み込みを拒否します。


+1ありがとう。正しい許可/所有権がどうあるべきかまだ理解できないので、上記の私の更新を参照してください。
WinWin

試しましたchmod 600 /home/winwin/.ssh/*。助けにはなりませんでした。:-/
WinWin

1
@WinWinも.sshディレクトリに設定しましたか?(答えを更新しました)。
ダースアンドロイド

はい、しました。まだ運がありません。
WinWin

2

私はこれに苦労し、最終的にStrictModes Noのような潜在的なセキュリティ侵害を引き起こさないソリューションを見つけました。

設定が次のとおりであることを確認してください。

chmod 0755 / home / {userdir}

chmod 0700 / home / {userdir} /.ssh

chmod 0600 / home / {userdir} /.ssh/authorized_keys

{userdir}は問題のディレクトリです。

キーはchmod 0755で、ユーザーのみがホームドライブに書き込みできるようにします。私はこれを、動作するユーザー設定からコピーしました他のユーザー名も機能し始めました!

これが私と同じように他の人を助け、数時間の時間を節約できることを願っています。


1

このエラーメッセージは、SELinuxがsshdにアクセスできないために発生することもありますauthorized_keys。これを試して:

restorecon -FRvv ~/.ssh

この回答から)


0
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 {} \;

3
スーパーユーザーへようこそ!これらのコマンドが何をするのかを説明できたらうれしいです。
slhck

0

私の場合、このホームディレクトリが属する実際のユーザー(別のユーザーのルートでホームディレクトリを作成するときの私の愚かさ)とは別の所有者(ルート)を持つホームディレクトリでした。

Chown [user]:[group] /home/[user] 

は、この問題を解決しました(そしてもちろん、他の回答で共有されているファイル/ディレクトリのパーミッションに固執しています)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.