Tengo un par de claves pública / privada. Ninguno de ellos tiene ningún tipo de frase de contraseña asociada a ellos.
Cada vez que trato de usar ssh usando lo privado o lo público (y estoy bastante seguro de que solo debería usar la clave pública), me preguntan por una frase de contraseña y, por supuesto, no puedo conectarme.
¿Alguien tiene alguna idea de cómo solucionar esto? ¿Estoy escribiendo algún comando incorretamente? Estoy intentando ingresar a un servidor que configuré en mi archivo ~ / .ssh / config (correctamente, ya que esta misma configuración funciona en otro servidor) con la clave almacenada en ~ / .ec2 / key.ppk
También he intentado usar puttygen.exe para generar una nueva clave privada CON una frase de contraseña, y luego usar esa clave, y cuando escribo la frase de contraseña, todavía falla.
ssh-rsa AAAAB3NzaC1y...... etc
el formato de openssh, ¿verdad? Tengo este formato en mi clave privada. El encabezado dice:PuTTY-User-Key-File-2: ssh-rsa Encryption: none Comment: imported-openssh-key Public-Lines: 6
Pero el archivo se almacena como un archivo id_rsa. ¿Significa esto que todavía está en formato .ppk, aunque el nombre del archivo es soloid_rsa
.ppk
, todavía estaba en formato de masilla, lo que me confundió, ya que mostraba todo tipo de errores, pero no me daba ninguna pista directa de que el problema estaba en el formato de la clave : stackoverflow.com/a/44391850/4752883Podrías ejecutar ssh-agent. Ver aquí para una discusión.
La versión corta que funcionó para mí (en bash):
Tomé las 3 líneas que resuena y las ejecuté. Otra forma de hacerlo es tomar la salida de -s:
Luego le agregué mis credenciales:
Ahora el agente proporciona las credenciales en lugar de que yo tenga que escribir mi frase de contraseña.
Creo que ssh-agent desaparece cuando lo hace el shell, por lo que esto debe ser programado al inicio para la máxima comodidad. El enlace que compartí describe las secuencias de comandos también.
fuente
Cuando configura su clave pública, probablemente (tal vez sin darse cuenta) la configura con una frase de contraseña.
Probablemente necesite comenzar de nuevo: no he usado puttygen, pero puede eliminar (o renombrar) la clave pública en su directorio .ssh, usarla
ssh-keygen
para generar una nueva (asegurándose de no proporcionar una frase de contraseña), y luego comparta public_key con el archivo Authorized Keys en el servidor al que está intentando conectarse.Es posible que también deba eliminar su antigua clave de frase de contraseña del archivo de claves autorizadas en el servidor al que se está conectando.
fuente
Verifique que la clave privada
id_rsa
no tenga saltos de línea adicionales al final, en algunos casos los saltos de línea adicionales harán que ssh-keygen solicite la frase de contraseña, intente esto:prueba:
fuente
-----END RSA PRIVATE KEY-----
causara que pidiera la frase de contraseña en una clave que no tenía un conjunto!Una cosa para verificar, si su archivo sshd_config tiene StrictModes = yes, entonces el directorio $ HOME o $ HOME / .ssh no debe poder escribirse en un grupo u otro. De lo contrario, la autenticación falla sin importar qué.
fuente
Cometí el error de sobrescribir accidentalmente mi archivo ~ / .ssh / id_rsa con mi ~ / .ssh / id_rsa.pub. Hacer eso hará que ssh solicite una frase de contraseña.
fuente
Me encontré con este problema el otro día. Específicamente, estaba tratando de copiar / pegar una clave privada de AWS de una máquina a otra.
Tengo la mala costumbre de perder el primer o el último personaje. Resulta que si no toma cada guión al final de su clave privada, a pesar de que no tiene nada que ver con el texto de la clave en sí, se le pedirá una frase de contraseña para la clave privada hasta que agregue todos los caracteres de la clave clave que copió (en mi caso, esto significaba agregar un solo guión al final de la clave).
Supongo que esto significa que la mejor práctica es SSH el archivo de texto a través del cable en lugar de intentar copiar y pegar entre las ventanas de Terminal.
fuente
En OSX pude simplemente ejecutar:
$ ssh-add ~/.ssh/id_rsa Enter passphrase for /Users/me/.ssh/id_rsa: `Identity added: /Users/mikekilmer/.ssh/id_rsa (/Users/mikekilmer/.ssh/id_rsa)
La aplicación Keychain Access almacenó la contraseña, que se encuentra en la carpeta Aplicaciones> Utilidades. Acabo de ingresar
id_
en el campo de búsqueda.fuente
Intente ver los archivos de registro en el servidor. Consulte / var / log / auth log (por ejemplo, / var / log / authlog para OpenSSH, aunque he visto que algunos sistemas operativos usan OpenSSH portátil y /var/log/auth.log) y comprueban el final de ese archivo.
Las causas más comunes que he visto son los permisos incorrectos (como se señala en la respuesta de TD1 ), aunque otros problemas podrían ser con la clave pública (almacenada en el servidor) que no está en el archivo correcto, o que la clave está siendo comentada, o un nombre de usuario mal escrito
También puede ser útil (para la resolución de problemas) darle a la cuenta una frase de contraseña temporalmente, solo para verificar que la cuenta pueda iniciar sesión correctamente cuando lo haga.
Si ver el archivo de registro no lo lleva rápidamente a una resolución, sugiero publicar una nueva pregunta (ya que esta es una gran pregunta generalizada) que incluye los detalles específicos del archivo de registro, para que se puedan proporcionar instrucciones más específicas.
fuente
En mi equipo, cuando esto sucede, no es un problema con nada localmente. La clave y / o acceso ssh del usuario no se ha configurado correctamente en el servidor al que se está conectando (en nuestro caso, una plataforma de alojamiento). Por alguna razón, esto desencadena una solicitud de una clave ssh inexistente.
fuente