Cómo solucionar el error Permiso denegado (Publickey)
Publicado: 2024-01-10- Por qué es importante
- Conceptos básicos de conexiones informáticas seguras
- Llave de la cerradura: claves públicas
- ¿Por qué ocurre este error?
- Como arreglarlo
- Consejos adicionales si aún no funciona
- Manteniéndolo funcionando sin problemas
- Preguntas frecuentes
- Otros recursos
- Terminando
¿Alguna vez te has encontrado con el mensaje "Error: Permiso denegado (Publickey)" mientras usas tu computadora? Este es un error común que suele aparecer durante las conexiones SSH, que es una forma en que las computadoras se comunican entre sí de forma segura.
Piense en ello como intentar utilizar una llave que no encaja en la cerradura. Cuando ve este error, significa que su computadora tiene problemas para establecer un vínculo seguro con otra computadora, porque algo en la configuración de seguridad no coincide.
Por qué es importante
Las conexiones seguras, como las que se realizan con SSH, son como tener una conversación privada en una habitación ruidosa. No querrás que todos te escuchen, especialmente si estás compartiendo secretos o información personal, ¿verdad? Por eso es tan importante corregir este error.
Mantiene las conversaciones de su computadora privadas y seguras, garantizando que la información confidencial, como las contraseñas, permanezca confidencial.
Conceptos básicos de conexiones informáticas seguras
Profundicemos en qué es SSH.
SSH significa Secure Shell y es una forma especial para que las computadoras se comuniquen entre sí a través de Internet de una manera súper segura. Imagine SSH como un túnel privado especial que conecta dos computadoras.
Sólo esas dos computadoras pueden enviarse mensajes entre sí a través de este túnel, manteniendo su conversación a salvo de espías.
Llave de la cerradura: claves públicas
Para que este túnel sea seguro, SSH utiliza algo llamado "autenticación de clave pública". Es como tener una contraseña especial, pero en forma de clave. Su computadora tiene una clave única (llamada clave pública) que comparte con la otra computadora.
Piense en ello como un apretón de manos secreto. Si el protocolo de enlace no coincide, la conexión no se realizará y será entonces cuando verá el mensaje "Error: Permiso denegado (Publickey)" .
¿Por qué ocurre este error?
Entonces, ¿por qué ves este error? Hay un par de razones comunes:
- Problemas clave: a veces, el error ocurre porque hay algún problema con la configuración de su clave especial. Quizás la clave de su computadora no coincida con la de la computadora con la que está intentando hablar. Es como intentar encajar una clavija cuadrada en un agujero redondo: simplemente no funciona.
- Configuración incorrecta: otras veces, es posible que la configuración o los permisos de su computadora estén configurados incorrectamente. Esto puede impedir que su computadora use la llave correctamente, como tener la llave correcta pero no poder girarla en la cerradura.
Como arreglarlo
Ahora que comprende un poco por qué ocurre este error, hablemos de cómo solucionarlo. Aquí hay algunos pasos que puede seguir:
Verifique los permisos de la clave SSH:
Establezca los permisos correctos para su clave privada.
chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/autorized_keys
Asegúrese de que su clave pública esté en ~/.ssh/authorized_keys
en el servidor. Si no, agréguelo usando:
gato ~/.ssh/id_rsa.pub | ssh usuario@nombredehost 'cat >> ~/.ssh/authorized_keys'.
Depurar la conexión SSH
Ejecute ssh -vvv usuario@nombredehost para habilitar el modo detallado, proporcionando diagnósticos de conexión detallados.
Verifique en el servidor las configuraciones correctas, especialmente para PasswordAuthentication
y PubkeyAuthentication
.
gato, etc/ssh/sshd_config
Soluciones adicionales:
Vuelva a verificar que esté utilizando el nombre de usuario correcto para la conexión SSH.
Reinicie el servicio SSH para actualizar las conexiones.
sudo systemctl restart sshd
Verifique el puerto de conexión SSH en el archivo de configuración SSH. El valor predeterminado suele ser 22, pero es posible que se haya modificado.
Consulte los registros del servidor, como /var/log/auth.log o /var/log/secure, para obtener detalles del error.
Consejos adicionales si aún no funciona
Si ha seguido estos pasos y aún ve el error, aquí hay un par de cosas más que puede probar:
- Modo de conversación: active el modo detallado en SSH. Esto es como pedirle a su computadora que le dé más pistas sobre lo que está mal. Para ello, agregue
-vvv
a su comando SSH, comossh -vvv [email protected]
. Le brindará muchos más detalles sobre lo que sucede cuando intenta conectarse. - Problemas con el agente: a veces, el problema puede estar en el agente SSH, una herramienta que contiene sus claves. Si el agente no funciona correctamente, sus claves no se presentarán correctamente. En ocasiones, reiniciar el agente SSH puede resultar útil.
Manteniéndolo funcionando sin problemas
Para evitar encontrar este error en el futuro, aquí hay algunos consejos para que todo funcione bien:
- Cuidado de claves: trate sus claves SSH como lo haría con las llaves de su casa. Mantenlos seguros y no los compartas con otros. Compruebe periódicamente si siguen funcionando como deberían.
- Revisiones periódicas: así como revisaría periódicamente su automóvil o su casa para detectar cualquier problema, haga lo mismo con su configuración SSH. Asegúrese de que la configuración no haya cambiado inesperadamente y que sus claves estén actualizadas.
Preguntas frecuentes
¿Cómo configuro la autenticación de clave pública en SSH?
Para configurar la autenticación de clave pública en SSH, primero genere un par de claves SSH en su máquina local usando un comando como ssh-keygen
. Esto crea una clave privada ( id_rsa
) y una clave pública ( id_rsa.pub
). A continuación, copie la clave pública en el archivo ~/.ssh/authorized_keys
del servidor usando ssh-copy-id user@server_ip
. Asegúrese de que el archivo authorized_keys
tenga los permisos correctos (normalmente 600) por seguridad. Esta configuración permite que SSH utilice autenticación basada en claves en lugar de contraseñas.
¿Cuáles son las causas comunes del error 'Permiso SSH denegado (Publickey)'?
- Las causas comunes de este error incluyen:
- Permisos incorrectos en los archivos de claves SSH. La clave privada debe ser legible únicamente por el usuario (600).
- Configuración incorrecta en los archivos de configuración SSH (
sshd_config
ossh_config
). - Software de cliente o servidor SSH desactualizado que puede no admitir los protocolos de autenticación actuales.
- Firewall o software de seguridad que bloquea puertos o conexiones SSH.
- Configure incorrectamente la clave pública en el archivo
authorized_keys
o use un nombre de usuario incorrecto para la conexión SSH.
¿Cómo puedo verificar si mi clave SSH se ha agregado correctamente al servidor?
Para verificar, inicie sesión en el servidor y verifique el archivo ~/.ssh/authorized_keys
. Su clave pública debería aparecer allí. También puede probar la conexión intentando conectarse mediante SSH al servidor. Si no solicita contraseña, la clave se ha agregado correctamente.
¿Por qué es importante restringir los permisos en los archivos de claves SSH?
Restringir los permisos en archivos de claves SSH es crucial para la seguridad. Si otras personas pueden leer su clave privada, potencialmente pueden acceder a sus servidores. Mantener segura la clave privada garantiza que solo usted pueda usarla para autenticarse.
¿Los cambios en la configuración SSH del servidor pueden provocar errores de "Permiso denegado"?
Sí, los cambios en el archivo de configuración SSH del servidor ( etc/ssh/sshd_config
) pueden provocar este tipo de errores. Por ejemplo, si PubkeyAuthentication
se establece en no
, el servidor no aceptará la autenticación de clave pública, lo que generará un error de permiso denegado.
¿Qué debo hacer si mi cliente SSH está desactualizado?
Si su cliente SSH está desactualizado, es posible que no admita métodos de autenticación más nuevos o que tenga vulnerabilidades de seguridad sin parches. Es importante actualizar su cliente SSH a la última versión disponible para su sistema operativo.
¿Cómo afectan los firewalls a las conexiones SSH?
Los firewalls pueden bloquear las conexiones SSH si están configurados para restringir el acceso al puerto SSH (el valor predeterminado es 22). Asegúrese de que su firewall permita el tráfico en el puerto utilizado para SSH para evitar problemas de conexión.
Otros recursos
Cómo instalar Sendmail en Linux 2024 (paso a paso)
Comandos básicos de Linux para DevOps (manual)
Terminando
En este artículo, exploramos las causas del "Error: Permiso denegado (Publickey)" y cómo solucionarlo. Recuerde, este error es como una llave que no encaja en la cerradura; generalmente significa que hay algún problema con la forma en que se configuran o se utilizan sus claves SSH. Si sigue los pasos que hemos descrito, debería poder resolver el problema y volver a tener conversaciones seguras con otras computadoras.
Ludjon, cofundador de Codeless, posee una profunda pasión por la tecnología y la web. Con más de una década de experiencia en la construcción de sitios web y el desarrollo de temas de WordPress ampliamente utilizados, Ludjon se ha establecido como un consumado experto en el campo.