Nota: Este artículo fue publicado originalmente en 2018. Algunos pasos, comandos o versiones de software pueden haber cambiado. Consulta la documentación actual de SSH para obtener la información más reciente.
Requisitos previos
Antes de comenzar, asegúrate de tener:
- Un sistema con Ubuntu (edición de escritorio o servidor)
- Acceso a la terminal con privilegios de sudo
- Familiaridad básica con la línea de comandos de Linux
Probablemente vienes de una publicación relacionada anterior ((</linux/ubuntu/resolved-permission-denied-publickey-when-trying-to-access-via-ssh-an-ubuntu-server/>)), pero si no, deberías echarle un vistazo para que tengas una idea de por qué podrías querer almacenar tu clave pública SSH fuera de tu directorio home. No soy un experto en seguridad, así que tal vez esta no sea una gran práctica en servidores compartidos, pero en mi escenario, todos son usuarios de confianza, así que almacenar las claves públicas SSH de los usuarios en otro lugar fue una opción aceptable.
Cómo almacenar tu clave pública SSH en un directorio diferente
La clave aquí está en el archivo de configuración ubicado en /etc/ssh/sshd_config. Vamos a buscar la siguiente configuración: RSAAuthentication yes PubkeyAuthentication yes #AuthorizedKeysFile %h/.ssh/authorized_keys Esa última línea es la clave aquí. Ahora mismo está comentada, pero puedes ver el comportamiento predeterminado del programa: %h significa la carpeta home, así que básicamente almacenará en la carpeta home de cada usuario las authorized_keys de dicho usuario. En mi caso, la carpeta home estaba cifrada, así que seguía recibiendo un error de ”(</linux/ubuntu/resolved-permission-denied-publickey-when-trying-to-access-via-ssh-an-ubuntu-server/>)” al intentar conectarme por SSH a mi servidor, ya que el servicio SSH no podía descifrar mi carpeta home y validar mi(s) clave(s) pública(s). ¿Solución? La moví a otra ubicación, toma este ejemplo: /etc/ssh/authorized_keys/%u. Lo que eso hace es almacenar en la carpeta /etc/ que es legible por el servicio, las claves autorizadas de cada usuario bajo un archivo con su nombre de usuario. Así es como se vería la línea: AuthorizedKeysFile /etc/ssh/authorized_keys/%u entonces, como cada usuario necesita poder escribir en la carpeta para almacenar sus claves, necesitas hacerla escribible por ellos o necesitas crear manualmente los archivos y establecer sus respectivos propietarios. Si tienes muchos usuarios, la opción uno tiene más sentido, pero si solo tienes unos pocos, entonces simplemente configura manualmente el archivo y los permisos para mayor seguridad. Adelante, reinicia el servicio y verás que las cosas funcionan de nuevo como deberían. ¡Espero que esto te sea útil!
Resumen
Has aprendido exitosamente a almacenar tu clave pública SSH en un directorio diferente. Si encuentras algún problema, verifica los requisitos previos y asegúrate de que tu entorno SSH esté configurado correctamente.
Artículos relacionados
- [Resolved: ](/resolved-permission-denied-publickey-when-trying-to-access-via-ssh-an-ubuntu-server/)
- How to: Add or Remove Symbolic links in Ubuntu
- How to: Assign multiple IP addresses to one interface in Ubuntu using the Command Line Interface (CLI)?
- How to: Build your own version of NginX