ssh con configuración no funciona pero ssh con línea de comando completa funciona

ssh con configuración no funciona pero ssh con línea de comando completa funciona

Solo para aclarar: el error que recibo no está relacionado con los permisos de los archivos ssh. No recibo ningún error relacionado con los permisos.

Tengo el siguiente archivo ~/.ssh/config

Host git-codecommit.*.amazonaws.com
  User APKAIxxxxxxxxxxxxxxx
  IdentityFile ~/.ssh/id_rsa

Los archivos config e id_rsa tienen los siguientes permisos

-rw------- 1 jmsanzg jmsanzg   93 jun 24 16:23 config
-rw------- 1 jmsanzg jmsanzg 1679 abr 26  2015 id_rsa
-rw-r--r-- 1 jmsanzg jmsanzg  396 abr 26  2015 id_rsa.pub

El directorio .ssh tiene los siguientes permisos

drwx------  2 jmsanzg jmsanzg      4096 jun 24 16:23 .ssh

Si ejecuto ssh lo obligo a usar el certificado y luego funciona

jmsanzg@jmsanz:~$ ssh -i ~/.ssh/id_rsa [email protected]
You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-east-2.amazonaws.com closed by remote host.
Connection to git-codecommit.us-east-2.amazonaws.com closed.

Pero cada vez que intento ejecutarlo directamente intentando usar el archivo de configuración falla

jmsanzg@jmsanz:~$ ssh git-codecommit.us-east-2.amazonaws.com
Permission denied (publickey).

Además, si configuro el usuario, simplemente intento encontrar por qué falla, bueno, también falla.

jmsanzg@jmsanz:~$ ssh [email protected]
Permission denied (publickey).

Esto me está volviendo loco porque funcionaba de maravilla desde 2015 y ayer de repente dejó de funcionar sin hacer (creo que sí) ningún cambio. Probé el parámetro -v en ambos y no veo ninguna diferencia específica. Justo al final, la línea de comando ofrece la clave pública RSA.

debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: /home/jmsanzg/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-256 blen 279
debug1: Authentication succeeded (publickey).

mientras que la otra línea de comando que debería usar el archivo de configuración no ofrece el archivo /home/jmsanzg/.ssh/id_rsa

debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

EDITAR Para hacer las cosas más interesantes. Copié los archivos config, id_rsa e id_rsa.pub a otra computadora. Dio los mismos permisos y... funcionan en ambos sentidos, usando la configuración y con la línea de comando completa.

Respuesta1

Tuve el mismo problema, ec2 y todo. Al correr ssh host-name -vobtendría connection timed out. Lo intenté:

  • permisos de apertura en ec2 ssh entrante
  • abriendo permisos chmod en .pem (no puedo hacer eso, debe ser 400)
  • simplificando el nombre de la clave

Finalmente, revisé dos veces mi nombre de host y era la instancia ec2 incorrecta. Además, hay varias ubicaciones de .ssh/config:

  • /etc/ssh/ssh_config
  • ~/.ssh/config

El mío está funcionando ahora con la instancia ec2 correcta:

  • cwd = ~
  • configuración loc = ~/.ssh/config
  • archivo de configuración
Host terraria
    HostName "###-###-##-##-###.compute-1.amazonaws.com"
    User ubuntu
    IdentityFile ~/.ssh/"Terraria Key.pem"
  • ssh terraria

información relacionada