認証エラーが多すぎてSSHが中止する


26

この単純なプロビジョニングスクリプトを実行しようとしていますが、実行vagrant upしてからvagrant provisionコマンドを実行するとエラーが発生します。

私がやった/etc/ansible/hostsファイルを作成する必要があることを読んで、それを埋めます:

[vagrant]
192.168.222.111

私のSSH構成(一部の詳細を削除):

Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/ashleyconnor/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL

Host            server
HostName        XXX.XXX.XXX.XXX
User            ash
PreferredAuthentications publickey
IdentityFile    ~/.ssh/ash_ovh

Host            deployer
HostName        XXX.XXX.XXX.XXX
User            deployer
PreferredAuthentications publickey
IdentityFile    ~/.ssh/deployer_ovh

Host            bitbucket.org
PreferredAuthentications publickey
IdentityFile    ~/.ssh/bitbucket

Host            github.com
PreferredAuthentications publickey
IdentityFile    ~/.ssh/github

Host            staging
HostName        192.168.56.10
User            deployer
PreferredAuthentications publickey
IdentityFile    ~/.ssh/id_rsa

私が受け取っているSSH出力は、すべてのキーを介して混乱しているようです:

<192.168.222.111> ESTABLISH CONNECTION FOR USER: vagrant
<192.168.222.111> REMOTE_MODULE setup
<192.168.222.111> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o', 'ControlPath=/Users/ashleyconnor/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'IdentityFile=/Users/ashleyconnor/.vagrant.d/insecure_private_key', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'User=vagrant', '-o', 'ConnectTimeout=10', '192.168.222.111', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1394317116.44-226619545527061 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1394317116.44-226619545527061 && echo $HOME/.ansible/tmp/ansible-tmp-1394317116.44-226619545527061'"]
fatal: [192.168.222.111] => SSH encountered an unknown error. The output was:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/ashleyconnor/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/ashleyconnor/.ansible/cp/ansible-ssh-192.168.222.111-22-vagrant" does not exist
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.222.111 [192.168.222.111] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug3: timeout: 10000 ms remain after connect
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/ashleyconnor/.vagrant.d/insecure_private_key" as a RSA1 public key
debug1: identity file /Users/ashleyconnor/.vagrant.d/insecure_private_key type -1
debug1: identity file /Users/ashleyconnor/.vagrant.d/insecure_private_key-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH_5*
debug2: fd 3 setting O_NONBLOCK
debug3: load_hostkeys: loading entries for host "192.168.222.111" from file "/Users/ashleyconnor/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /Users/ashleyconnor/.ssh/known_hosts:20
debug3: load_hostkeys: loaded 1 keys
debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-rsa
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-rsa,ssh-dss-cert-v01@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: zlib@openssh.com,zlib,none
debug2: kex_parse_kexinit: zlib@openssh.com,zlib,none
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-ctr hmac-md5 zlib@openssh.com
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-ctr hmac-md5 zlib@openssh.com
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug2: dh_gen_key: priv key bits set: 119/256
debug2: bits set: 527/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 50:db:75:ba:11:2f:43:c9:ab:14:40:6d:7f:a1:ee:e3
debug3: load_hostkeys: loading entries for host "192.168.222.111" from file "/Users/ashleyconnor/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /Users/ashleyconnor/.ssh/known_hosts:20
debug3: load_hostkeys: loaded 1 keys
debug1: Host '192.168.222.111' is known and matches the RSA host key.
debug1: Found key in /Users/ashleyconnor/.ssh/known_hosts:20
debug2: bits set: 511/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /Users/ashleyconnor/.ssh/id_rsa (0x7fc212600540),
debug2: key: /Users/ashleyconnor/.ssh/bitbucket (0x7fc212600730),
debug2: key: /Users/ashleyconnor/.ssh/deployer (0x7fc212600a00),
debug2: key: /Users/ashleyconnor/.ssh/github (0x7fc212600c80),
debug2: key: /Users/ashleyconnor/.ssh/ash_ovh (0x7fc212601010),
debug2: key: /Users/ashleyconnor/.ssh/deployer_ovh (0x7fc2126011e0),
debug2: key: /Users/ashleyconnor/.vagrant.d/insecure_private_key (0x0), explicit
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-with-mic,gssapi-keyex,hostbased,publickey
debug3: authmethod_lookup publickey
debug3: remaining preferred: ,gssapi-keyex,hostbased,publickey
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/ashleyconnor/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /Users/ashleyconnor/.ssh/bitbucket
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /Users/ashleyconnor/.ssh/deployer
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /Users/ashleyconnor/.ssh/github
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /Users/ashleyconnor/.ssh/ash_ovh
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /Users/ashleyconnor/.ssh/deployer_ovh
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
Received disconnect from 192.168.222.111: 2: Too many authentication failures for vagrant

vagrant sshコマンドは正常に動作します。



少し異なります。Vagrantは実行時にキーを挿入しますがvagrant ssh、この質問にはキーレス認証のみが関係していました。
アッシュ14

2
これをググリングしている他の人へのメモの追加。Cisco Nexusスイッチにもこの同じ問題があります。下記@HenkLangeveldにより指摘したように同じ方法で解決IdentitiesOnly=yes
ブレットLYKINS

回答:


37

によればssh-config(5)、sshは、IDファイルに加えて、エージェントが認識しているすべてのキーを常に試します。

 IdentitiesOnly
         Specifies that ssh(1) should only use the authentication identity files
         configured in the ssh_config files, even if ssh-agent(1) offers more
         identities.  The argument to this keyword must be “yes” or “no”.  This
         option is intended for situations where ssh-agent offers many different
         identities.  The default is “no”.

 IdentityFile
         Specifies a file from which the user's DSA, ECDSA or DSA authentication
         identity is read.  The default is ~/.ssh/identity for protocol version 1,
         and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol
         version 2.  Additionally, any identities represented by the  
         authentication agent will be used for authentication.  ssh(1) will try
         to load certificate information from the filename obtained by
         appending -cert.pub to the path of a specified IdentityFile.

これを防ぐIdentitiesOnly=yesには、明示的に提供された秘密キーに加えて指定する必要があります。

たとえば、ssh次のコマンドを実行します。

$ ssh -i /home/henk/.vagrant.d/insecure_private_key \
  vagrant@192.168.222.111 echo ok

生成するもの:

Received disconnect from 192.168.222.111: 2: Too many authentication 
failures for vagrant

ただし、同じsshコマンドを実行し、さらに次を指定しIdentitiesOnly=yesます。

$ ssh -o IdentitiesOnly=yes \
  -i /home/henk/.vagrant.d/insecure_private_key vagrant@192.168.222.111 echo ok

生成するもの:

ok

編集:浮浪者キーをエージェントに追加する必要があるという誤った仮定を削除しました。これはその本質に対する答えを減らします。私たちは、重複を見つけることができるかどうか見てみましょう...
ヘンクLangeveld

3
説明してくれてありがとう!.ssh/configファイルを使用する場合、構文はIdentitiesOnly yes適切なHostセクションにあります。
ダビル

正しい、構成 ファイルにssh -o Option=ValueなりOption Valueます。
ヘンクランゲベルド

質問があまりにも基本的であるが、サーバー側の「IdentitiesOnly = yes」またはクライアントから渡す引数かどうかは許しますか?なお、第2のように見えます...
RollRoll

@ThePoet Indeedは、sshクライアントオプションとして言及しました。
ヘンクランゲベルド

8

だから私は自分の5つのキーを持っていssh-agentて、迷惑なsshキーを使用する明示的なオプションにもかかわらず、正しいキーに到達する前にmax_triesに到達する前にエージェントのキーをループすることを主張しました。

この問題があることを確認するには:実行ssh-add -l-このリストが5を超える場合は、キーを削除するか、エージェントを無効にする必要があります。

修正方法:実行はssh-add -d ~/.ssh/XどこX削除するキーです。


mazer-rackhamリポジトリをインストールした後、この情報を使用して問題を再現できました。代替手段を追加しました。Vagrantキーがエージェントによって認識されていることを確認してください。
ヘンクランゲベルド14年

エージェントに追加しましたが、キーを削除する必要がありました。エージェントに追加する順序が重要な場合がありますか?編集:編集を読むだけです。
アッシュ14年

私は同じ問題を抱えていますが、これをどのように修正したのか分かりませんか?~/.ssh/フォルダーからキーを削除できません。次に必要です
rubo77 14

~.sshフォルダーからキーを削除するのではなく、キーをフォルダーから削除しますssh-agent daemon。後からいつでも追加できます。詳細はこちらをご覧ください。
アッシュ14

4

ここですべてのアドバイスを試みたが成功しなかった後、私の問題は新しい認証方法(GSSAPI)であり、常に失敗することを認識しました。

~/.ssh/configファイルを編集してこれを解決しました:

Host *
  GSSAPIAuthentication no

これが誰かにも役立つことを願っています。


これは少なくとも1つのスロットを構成するようです!ssh-agentを介した5つのキーを使用したセットアップが再び機能します。私はかかわらず、それは6つのキーで失敗します推測する...
ロバートSiemer

2

ssh-agentは、sshサーバーが認証試行を許可するよりも多くのキーを保持します(「MaxAuthTries」、デフォルト:6)。

一部のssh-agent、特にGNOME Keyringは、〜/ .sshにあるすべてのキーを自動ロードし、これらのキーは「ssh-add-[dD]」でアンロードできないことに注意してください。

以下にいくつかの解決策を示します。

  • 〜/ .ssh / configで正しいキーをすでに設定しているため、エージェントは必要ありません。クライアントがエージェントを無視するようにします。たとえばunset SSH_AUTH_SOCK、@ henk-langeveldが示唆するように「IdentitiesOnly = yes」を使用します
  • 〜/ .sshからいくつかのキーを移動し(〜/ .ssh / noautoのようなサブディレクトリも動作します)、自動ロードされないようにします。必要な場合は、手動でsshを追加できます。
  • サーバー側の「MaxAuthTries」、許可される認証試行の回数を増やします

2

これを防ぐために、-o 'IdentitiesOnly yes'例えばssh -i privateKey -o 'IdentitiesOnly yes' user@host

または、次の行を〜/ .ssh / configファイルに追加できます

Host *
IdentitiesOnly yes

1

クイック修正コマンドを使用してサーバーを接続するには:

ssh -o IdentitiesOnly=yes -i ~/.ssh/private_key_or_pem_file_name server_user_name@ip_OR_hostname echo ok

推奨される方法は次のとおりです。

ただし、sapiサーバーを接続しているcapistranoのレシピまたはその他のソフトウェアがある場合は、以下で説明するように適切な方法で修正する必要があります。

〜/ .ssh / configにファイル言及「IdentitiesOnlyはい」オプションサーバー構成で

Host server_domain_OR_ip server_name_your_choice
    User server_user_name
    Hostname server_domain_OR_ip
    RSAAuthentication yes
    Compression yes
    IdentityFile ~/.ssh/private_key_OR_pem_file
    IdentitiesOnly yes
    Port 22

private_key_OR_pem_file: PEMファイルの場合、拡張子も「.pem」に言及します


1

Ansible Playbookを実行しようとしたときに、同じエラーに遭遇しました。私は次を使用してIdentitiesOnly sshオプションを提供することになりました--ssh-extra-args

ansible-playbook -i ../.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml --ssh-extra-args="-o IdentitiesOnly=yes"

0

キーメッセージは

Received disconnect from 192.168.222.111: 2: 
    Too many authentication failures for vagrant

vagrant ssh-config出力をデフォルトホストとしてコピーしました.ssh/configが、競合するパラメーター(ホスト名、ポート)があるため、これはスキップされます。一致するエントリがない場合、sshは検出可能なすべてのキーを試します。

-iオプションを使用してsshの試行を再度テストします

$ ssh -i $HOME/.vagrant.d/insecure_private_key vagrant@192.168.222.111 echo ok

私はこれがAnsible Inventoryでこれを指定する方法だと信じています:

[vagrant]
192.168.222.111 ansible_ssh_private_key_file=/.../.vagrant.d/insecure_private_key

読みやすさのためのパスを短縮


元の回答:

の出力vagrant ssh-configとのVagrantエントリを比較します.ssh/config。秘密鍵のパスが完全に一致することを確認してください。

また、他のアカウントがキーファイルにアクセスできないことを確認してください。私たちは皆、そのキーが何であるかを知っていますが、SSHはこのことが公的な知識であることを知りませんし、侵害されるかもしれないキーを使用することから私たちを保護しようとします。


私はもともと設定をコピーしましたが、vagrant ssh-configもう一度確認しましたが、同じです。またcat /Users/ashleyconnor/.vagrant.d/insecure_private_key、適切な権限を持っています。
アッシュ14年

誰もファイルを読み書きできないことを確認してください。
ヘンクランゲベルド14年

1
私だけにrw権限があります。他の提案には運がありません、私はssh -i $HOME/.vagrant.d/insecure_private_key -l vagrant 192.168.222.111まだ取得して実行しようとしましたReceived disconnect from 192.168.123.123: 2: Too many authentication failures for vagrant
Ash

リモートホストにはユーザーがいますvagrantか?
ヘンクランゲベルド14年

はい。実行vagrant sshすると、ユーザーの浮浪者として接続します
アッシュ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.