No se puede realizar ssh con la clave en mi Synology NAS

No se puede realizar ssh con la clave en mi Synology NAS

Esta pregunta ya me la han hecho muchas veces, pero las soluciones no me funcionan.
Estoy intentando realizar ssh con una clave desde un sistema Ubuntu a mi Synology NAS, pero todavía me piden la contraseña de usuario porque la clave privada está demasiado abierta.

Creé mis claves en /opt/duplicati/config/.ssh id_rsa e id_rsa.pub.
Luego usé ssh-copy-id para copiar la clave pública a mi NAS.
Pero cuando intento conectarme a mi NAS, aparece esto

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/opt/duplicati/config/.ssh/id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/opt/duplicati/config/.ssh/id_rsa.pub": bad permissions
[email protected]'s password:

Es extraño que el problema esté relacionado con la clave privada, pero se queja de que el permiso 0644 para la clave pública es demasiado abierto.

La solución para esto es reducir el permiso para ambas claves y la carpeta .ssh a 0400 o 0600, pero cuando hago eso, parece que ssh ya no puede leer el archivo y aparece este error.

Load key "/opt/duplicati/config/.ssh/id_rsa.pub": error in libcrypto

Ya probé esto con root y con un usuario administrador, pero no puedo hacerlo funcionar.
¿Esto se debe a que mis claves no están en la carpeta de inicio habitual ~/.ssh/?
Desde otro sistema Ubuntu pude acceder a mi NAS mediante ssh con la clave almacenada en ~/.ssh/

Respuesta1

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'

Su problema real es que está utilizando el archivo de clave incorrecto para el parámetro "-i". El archivo con la extensión ".pub" contiene la parte pública de la clave. El archivo correspondiente sin la extensión ".pub" contiene la parte privada de la clave. Cuando ejecuta un cliente ssh para conectarse a un servidor remoto, debe proporcionar el archivo de clave privada al cliente ssh, no el archivo de clave pública.

Probablemente tenga un archivo llamado "/opt/duplicati/config/.ssh/id_rsa" sin la extensión ".pub". Este es el archivo que debes usar al ejecutar ssh:

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa '[email protected]'
                                                  ^--- no extension

Recibes un error sobre los permisos porque los archivos de clave privada contienen información confidencial, por lo que el sshprograma requiere que los archivos de clave privada tengan permisos que impidan que otros los lean. El archivo de clave pública (el archivo con la extensión ".pub") no contiene información confidencial, por lo que la herramienta que crea archivos de clave crea el archivo de clave pública con permisos menos estrictos.

Respuesta2

Aquí hay un openssl relacionadoProblema de GitHuby una falla del servidorpregunta. En ambas situaciones, generar una nueva clave parece haber funcionado. Esto podría deberse a un problema de compatibilidad o corrupción.

información relacionada