Tengo una cuenta hostgator con acceso ssh habilitado. Al intentar cargar el archivo de clave .pub generado con este comando:
rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub [email protected]:.ssh/authorized_keys
Sigo recibiendo:
Desconexión recibida de 111.222.33.44: 2: demasiados errores de autenticación para el nombre de usuario rsync: conexión inesperadamente cerrada (0 bytes recibidos hasta ahora) [remitente] Error de rsync: error inexplicable (código 255) en io.c (601) [remitente = 3.0.7]
He estado jugando anteriormente con ssh hasta que tuve la falla de autenticación. Pero ahora parece que el contador de fallas de autenticación no se reinicia (ha estado esperando más de 12 horas ahora, el soporte técnico "supone" que se restablece después de 30 minutos a 1 hora, y otro tipo me dijo "se restablece cada vez que intenta iniciar sesión con el nombre de usuario ", jeesh).
Esto me está volviendo loco. Incluso lo configuré en un servidor personalizado de Slicehost y tuve menos problemas que con estos chicos.
¿Algun consejo? Quizás sea algo del lado del cliente y no del lado del servidor.
ssh
authentication
Gabriel A. Zorrilla
fuente
fuente
Respuestas:
Esto generalmente se debe a la oferta inadvertida de múltiples claves ssh al servidor. El servidor rechazará cualquier clave después de que se hayan ofrecido demasiadas claves.
Puede ver esto por sí mismo agregando la
-v
bandera a sussh
comando para obtener resultados detallados. Verá que se ofrecen un montón de claves, hasta que el servidor rechace la conexión diciendo: "Demasiados errores de autenticación para [usuario]" . Sin el modo detallado, solo verá el mensaje ambiguo "Restablecimiento de la conexión por igual" .Para evitar que se ofrezcan claves irrelevantes, debe especificar explícitamente esto en cada entrada de host en el
~/.ssh/config
archivo (en la máquina cliente) agregandoIdentitiesOnly
así:Si usa el agente ssh, es útil ejecutarlo
ssh-add -D
para borrar las identidades.Si no está utilizando ninguna configuración de hosts ssh, debe especificar explícitamente la clave correcta en el
ssh
comando de la siguiente manera:Nota: el parámetro 'IdentitiesOnly yes' tenía que estar entre comillas.
o
fuente
ssh -i some_id_rsa -o "IdentitiesOnly yes" them@there:/path/
ssh
"ofrece varias claves" (algo debajo~/.ssh
) incluso cuando la regla para host tiene unaIdentityFile /path/to/private_key_file
configuración explícita ? ¿No debería esta clave especificada explícitamente (como mínimo) ofrecida primero? ¿No es esto un error / error en el cliente openssh?IdentityFile
opción? Por ejemplo, sin laIdentitiesOnly
opción, intenta usar migithub
clave cuando lo intentossh gitlab.com
. No tiene sentido.Encontré una manera más fácil de hacer esto (si usa autenticación de contraseña):
Esto fuerza la autenticación sin clave. Pude iniciar sesión de inmediato.
Referencia
fuente
rsync
:rsync -av -e 'ssh -o PubkeyAuthentication=no' '[email protected]:~/remote_file' 'local_file'
También recibí este error y descubrí que estaba sucediendo porque el servidor estaba configurado para aceptar hasta 6 intentos:
Además de configurarlo
IdentitiesOnly yes
en su~/.ssh/config
archivo, tiene otras opciones.MaxAuthTries
(en el servidor ssh)~/.ssh/
directorio y ejecutessh-add -D
~/.ssh/config
archivoAl igual que:
Probablemente no sea una buena manera de hacerlo, dado que debilita un poco su servidor ssh, ya que ahora aceptará más claves en un intento de conexión determinado. Piensa en los vectores de ataque de fuerza bruta aquí.
Es una buena manera de asumir que tiene claves que no son necesarias y que pueden eliminarse permanentemente.
¡Y el enfoque de establecer IdentitiesOnly son probablemente las formas preferidas de tratar este problema!
fuente
Agregué a ~ / .ssh / config esto:
Habilita la opción IdentitiesOnly = yes por defecto. Si necesita conectarse con una clave privada, debe especificarla con la opción -i
fuente
Si obtiene el siguiente error SSH:
Esto puede suceder si tiene (predeterminado en mi sistema) cinco o más archivos de identidad DSA / RSA almacenados en su directorio .ssh y si la opción '-i' no está especificada en la línea de comandos.
El cliente ssh primero intentará iniciar sesión con cada identidad (clave privada) y luego solicitará la autenticación de contraseña. Sin embargo, sshd corta la conexión después de cinco intentos de inicio de sesión incorrectos (nuevamente, el valor predeterminado puede variar).
Si tiene varias claves privadas en su directorio .ssh, puede deshabilitar la "Autenticación de clave pública" en la línea de comando utilizando el argumento opcional '-o'.
Por ejemplo:
fuente
Si tiene una contraseña y desea simplemente usar la contraseña para iniciar sesión, así es como lo hace.
Para usar SOLO la autenticación de contraseña y NO usar la clave pública, y NO usar el "teclado interactivo" algo engañoso (que es un superconjunto que incluye contraseña), puede hacerlo desde la línea de comandos:
fuente
Saliendo de @David diciendo, solo agregue esto
IdentitiesOnly yes
a su .ssh / config, hace lo mismo quessh -o PubkeyAuthentication=no.
Después de iniciar sesión, elimine
.ssh/authorized_keys
. Ahora, regrese a la máquina local y escriba lo siguientecat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'
. Esto debería volver a habilitar su ssh con clave públicafuente
Sé que este es un hilo antiguo, pero solo quería agregar aquí que me encontré con el mismo mensaje de error, pero fue causado por el propietario de la carpeta .ssh como root en lugar del usuario que estaba usando la clave. Corrija el problema ejecutando los siguientes comandos:
También me aseguré de que los permisos fueran correctos en la carpeta .ssh:
Los archivos dentro del directorio .ssh deben tener el permiso de 600:
fuente
En mi caso, el problema eran los permisos de directorio. Esto me lo arregló:
fuente
En mi caso, sucedía porque estaba usando el nombre de usuario "ubuntu", pero el nombre de usuario en este caso era "usuario ec2"
Después de hacer lo que sugirió "John T", recibí este error:
Luego encontré la solución (es decir, cambiar el nombre de usuario a "ec2-user") en esta respuesta: https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue
fuente
Tenía mi clave pública
.ssh/authorized_keys2
, pero el servidor estaba configurado para solo lectura.ssh/authorized_keys
:Después de mover mi archivo a
.ssh/authorized_keys
, puedo iniciar sesión con éxito con mi clave.fuente
Este mensaje es causado por tener demasiados intentos fallidos de autenticación dados los límites permitidos impuestos en el servidor SSH remoto. Potencialmente, esto significa que tiene demasiadas identidades agregadas en el agente SSH.
Aquí hay algunas sugerencias:
-v
para ver si ese es el caso (ha usado demasiadas identidades).ssh-add -l
.ssh-add -d
.ssh-add -D
y volver a agregar solo las relevantes.Si tiene acceso al servidor SSH, marque la
MaxAuthTries
opción (ver:)man sshd_config
.Publicación relacionada: ¿Qué es una conexión para
sshd_config
el límite 's' MaxAuthTries '?Si nada de esto ayuda, asegúrese de utilizar las credenciales o el archivo correctos.
fuente
Este mensaje puede aparecer cuando no se ingresa el nombre de usuario y contraseña correctos.
Primero verifique que el usuario esté en la lista:
fuente