OpenSSHサーバーがキー認証の受け入れを拒否します


13

新しいサーバーで公開鍵認証を使用しようとしましたが、この問題に遭遇しました。

$ ssh -v -i .ssh/server 192.168.1.100
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data .ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file .ssh/server type -1
debug1: identity file .ssh/server-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.100' is known and matches the RSA host key.
debug1: Found key in .ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: .ssh/server
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password

そして、ログインするにはパスワードを入力する必要があります。

ただし、そのサーバー(パスワードで接続されている)に1つのセッションが既に接続されている場合、次の接続ではキー認証を使用してパスワード入力を回避します。

SSH接続が既に確立されていない場合、パスワードを入力しないと接続できません。

これは本当に奇妙です。/usr/sbin/sshd新しいサーバーと他の通常のサーバーとの間のMD5を確認しましたが、同じです。次に/etc/ssh/sshd_config、他の通常のサーバーから新しいサーバーにコピーして、実行しましたservice ssh restart。問題はまだ存在します。

これをどのように修正するのですか?

回答:


10

あなたのことを確認し.sshたフォルダとクライアントマシン上の、その中のファイルは、所有者によってのみ読み出し可能です(chmod -R 600 .ssh)と所有者は、フォルダとファイル(使用に対して正しいことをchownコマンドを必要に応じて)。

またauthorized_keys、サーバー上のフォルダーとファイル(おそらく/root/.sshログインしようとしているユーザーのホームフォルダー内)をチェックして、アクセス許可と所有者が同じ方法で設定されていることを確認します。


編集:より多くのフィードバックに基づいて(およびいくつかの推測に基づいて!)- /etc/ssh/sshd_config次のパラメーターが以下のように設定されているかどうかを確認できますか?そうでない場合は、編集してみてください。

AuthorizedKeysFile /home/%u/.ssh/authorized_keys

注:これは、rootとしてリモートでログインしないことを前提としています


私の.sshは700で、.sshのファイルは600で、リモートマシンで〜/ .ssh / authorized_keysを二重チェックしました。公開キー認証のセットアップは、システムをインストールした後に最初に行うことなので、他の操作で台無しになることはほとんどありません。ところで、まだ問題..
lxyu

OK-これに基づいて答えに何かを追加しています。
リンカー3000

「#AuthorizedKeysFile%h / .ssh / authorized_keys」の行があります。私はそれをコメントアウトしようとしましたが、役に立たないのです。
lxyu

最後に、ubuntuを再インストールしてから、openssh-serverを1分でセットアップすると、今は正常に動作しています...何が問題なのかまだわかりません。:(
lxyu

何が問題なのかを見つけるのが本当に難しい場合があります。authorized_keysをauhorized_keysと間違えたことがあります。これをトラブルシューティングするのに約1時間かかりました。スペルミスは見ましたか?本当にトリッキーです!:-)
nalply

4

id_rsa.pub.sshから削除することで、このエラーの独自のケースを修正しました。

id_rsa別のマシンからコピーして、複数のダミークライアントに配布しました。したがって、id_rsaid_rsa.pubは実際にはまったく別のキーであり、id_rsaまったく使用できませんでした。

ただし、これを明確に示すエラーメッセージはありません。異なるマシンを同一の状態にしようとして、本質的に偶然にそれを見つけました。


3

私の発見から、ターゲットのホームディレクターの最小許可は750です。世界のビットがそうでない場合0、それは動作しません。

例えば。ルートのディレクトリの場合:

drwxr-x--- 3 root root 4096 Jul 20 11:57 root

次は /root/.ssh

drwx------  2 root root  4096 Jul 17 03:28 .ssh

それから /root/.ssh/authorized_keys

-rw------- 1 root root 1179 Jul 17 03:28 authorized_keys

3

私の場合、ホームディレクトリのアクセス許可は、775代わりに、0755またはそれ以下でした。

authorized_keysファイルへの完全なパス。つまり、以下で/home/user/.ssh/なければなりません0755


ありがとう、これはちょうど私が今一週間抱えていた頭痛について読んだばかりです。ほとんどの人はの.sshフォルダ(700)とのauthorized_keys(600)のみに言及
ジョナサンKomar

2

多くの問題を抱えた後、私は問題の解決策を得た:

ユーザーのホームディレクトリには、アクセス許可777または書き込み可能なユーザー権限がありません。その場合、SSHキーの検証は失敗し、ログイン用のパスワードを入力する必要があります。


1

sshしようとしているアカウントが、リモートサーバー上のパスワードを持つユーザーであることを確認してください。ここでこの答えを見つける前に、私はちょうど30分間壁に頭を叩きました:https : //stackoverflow.com/a/14421105/758174


1

/etc/ssh/sshd_config以下の行のコメントが解除されている場合、SSH構成ではユーザーの固定リストのみがシステムにsshできるようになり、リストに新しいアカウントを追加する必要があります。

AllowUsers root user1 user2 user3

SSH経由でログインしようとする上記のユーザー以外のユーザーは、この不可解なエラーメッセージを受け取ります。

Roaming not allowed by server

0

私は私のユーザーとグループ名(ただし、ID)を変更した後であることが分かった/etc/passwd/etc/group、しかし、変更し忘れ/etc/shadowに応じて、私はメッセージ「許可をローミングなし」と同じです。

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