Estoy intentando ejecutar este simple script de aprovisionamiento pero encuentro errores al ejecutar vagrant up
y luego vagrant provision
comandos.
Leí que necesitaba crear un /etc/ansible/hosts
archivo que hice, rellenándolo con:
[vagrant]
192.168.222.111
Mi configuración SSH (algunos detalles eliminados):
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
La salida SSH que estoy recibiendo parece agotar todas mis claves:
<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: [email protected],[email protected],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: [email protected],[email protected],ssh-rsa,[email protected],[email protected],ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: [email protected],zlib,none
debug2: kex_parse_kexinit: [email protected],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,[email protected]
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,[email protected]
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: none,[email protected]
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 [email protected]
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-ctr hmac-md5 [email protected]
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
El vagrant ssh
comando funciona bien.
vagrant ssh
y esta pregunta solo involucra la autenticación sin clave .IdentitiesOnly=yes
Respuestas:
Según
ssh-config(5)
, ssh siempre probará todas las claves conocidas por el agente además de cualquier archivo de identidad:Para evitar esto, se debe especificar
IdentitiesOnly=yes
además de la clave privada proporcionada explícitamente.Por ejemplo, ejecutando el
ssh
siguiente comando:produce:
Sin embargo, ejecuta el mismo
ssh
comando y, además, especificaIdentitiesOnly=yes
:produce:
fuente
.ssh/config
archivo, la sintaxis se encuentraIdentitiesOnly yes
en lasHost
secciones apropiadas .ssh -o Option=Value
convierteOption Value
en el archivo de configuración.ssh
opción de cliente.Así que tenía 5 claves en mi
ssh-agent
y, a pesar de la opción explícita de usar la clave ssh vagabunda, todavía insistía en recorrer las claves en mi agente antes de llegar a max_tries convenientemente antes de llegar a la clave correcta.Para comprobar que tiene este problema: Ejecute
ssh-add -l
: si esta lista es> 5, debe eliminar las claves o deshabilitar el agente.Para solucionarlo: ejecute
ssh-add -d ~/.ssh/X
dóndeX
está la clave que desea eliminar.fuente
~/.ssh/
carpeta, necesito entonces~.ssh
carpeta, está eliminando las claves dessh-agent daemon
. Siempre puedes volver a agregarlos más tarde. Ver aquí para más información.Después de probar todos los consejos aquí sin éxito, reconocí que mi problema era el nuevo método de autenticación (GSSAPI), que siempre no tenía éxito.
Resolví esto editando el
~/.ssh/config
archivo:Espero que esto ayude a alguien también.
fuente
Su agente ssh tiene más claves de las que el servidor ssh permite intentos de autenticación ("MaxAuthTries", predeterminado: 6).
Tenga en cuenta que algunos agentes ssh, en particular el Llavero GNOME, cargan automáticamente todas las claves que encuentran en ~ / .ssh, y que estas claves no se pueden descargar con "ssh-add - [dD]".
Aquí hay algunas soluciones:
unset SSH_AUTH_SOCK
o use "IdentitiesOnly = yes" como sugirió @ henk-langeveldfuente
Para evitar esto, podemos usar ssh usando
-o 'IdentitiesOnly yes'
egssh -i privateKey -o 'IdentitiesOnly yes' user@host
alternativamente, podemos agregar las siguientes líneas al archivo ~ / .ssh / config
fuente
Para conectar el servidor usando el comando de reparación rápida:
La forma recomendada se menciona a continuación:
Pero si tiene recetas capistrano u otros softwares que están conectando su servidor ssh, entonces debe solucionarlo de la manera adecuada como se menciona a continuación:
En el archivo ~ / .ssh / config , mencione la opción "IdentitiesOnly yes" en la configuración de su servidor
private_key_OR_pem_file: en caso de que el archivo pem mencione la extensión también ".pem"
fuente
Me encontré con este mismo error al intentar ejecutar un libro de jugadas ansible. Terminé suministrando la opción IdentitiesOnly ssh usando
--ssh-extra-args
:fuente
Mensaje clave es
Copiaste la salida ssh-config vagabunda como host predeterminado,
.ssh/config
pero se omite porque tiene parámetros en conflicto (nombre de host, puerto). Sin una entrada coincidente, ssh solo probará todas las claves que pueda encontrar.Pruebe el intento de ssh nuevamente con la
-i
opciónCreo que así es como lo especificaría en el inventario de Ansible:
Abreviado el camino para la legibilidad
Respuesta original:
Compare la salida de
vagrant ssh-config
con la entrada vagabunda en su.ssh/config
. Asegúrese de que la ruta de la clave privada coincida exactamente.Verifique también que ninguna otra cuenta pueda acceder al archivo de claves. Todos sabemos cuál es esa clave, pero SSH no sabe que esto es de conocimiento público y trata de protegernos del uso de claves que pueden verse comprometidas.
fuente
vagrant ssh-config
pero la revisé nuevamente y es idéntica. También puedocat /Users/ashleyconnor/.vagrant.d/insecure_private_key
y tengo los permisos adecuados.ssh -i $HOME/.vagrant.d/insecure_private_key -l vagrant 192.168.222.111
todavía obteniendoReceived disconnect from 192.168.123.123: 2: Too many authentication failures for vagrant
vagrant
?vagrant ssh
se conecta como usuario vagabundo