web-dev-qa-db-ja.com

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

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

$ 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を実行しました。問題はまだ存在しています。

どうすれば修正できますか?

13
lxyu

あなたの.sshフォルダーとクライアントマシン上のその中のファイルは、所有者(chmod -R 600 .ssh)および所有者がフォルダーとファイルに対して正しいこと(必要に応じてchownコマンドを使用)。

また、authorized_keysフォルダとサーバー上のファイル(おそらく/root/.sshまたはログインしようとしているユーザーのホームフォルダー)を使用して、権限と所有者が同じ方法で設定されていることを確認します。


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

AuthorizedKeysFile /home/%u/.ssh/authorized_keys

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

10
Linker3000

.sshからid_rsa.pubを削除して、このエラーの自分のケースを修正しました。

別のマシンからid_rsaをコピーして、いくつかのダミークライアントに配布しました。したがって、id_rsaid_rsa.pubは実際には異なるキーであり、id_rsaの使用を完全に妨げていました。

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

4
ketarax

私の場合、ホームディレクトリの権限は775 の代わりに 0755以下。

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

3
Aditya Advani

私の発見によると、ターゲットのホームディレクターの最低権限は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
David Wee

多くのトラブルの後、私は問題の解決策を得ました:

ユーザーのホームディレクトリに権限を付与しないでください777または書き込み可能な世界。この場合、SSHキーの検証は失敗し、ログイン用のパスワードを入力する必要があります。

2
user2357653

もしあなたの /etc/ssh/sshd_configには、コメント化されていない次の行があります。SSH構成では、ユーザーの固定リストのみがシステムにsshでアクセスできるため、新しいアカウントをリストに追加する必要があります。

AllowUsers root user1 user2 user3

上記のユーザー以外のユーザーがSSH経由でログインしようとすると、この不可解なエラーメッセージが表示されます。

Roaming not allowed by server
1
Tilo

Sshを行おうとしているアカウントが、リモートサーバー上のパスワードを持つユーザーであることを確認してください。私はここでこの答えを見つける前に壁に頭をぶつけただけです https://stackoverflow.com/a/14421105/758174

1
Pierre D

/etc/passwd/etc/groupのユーザー名とグループ名(IDは除く)を変更した後、/etc/shadowを変更するのを忘れると、同じ「ローミングは許可されていません」というメッセージが表示されることがわかりました。

0
andrew