Introducción
El error de permiso SSH denegado aparece después de modificar la configuración relacionada con el permiso en el servidor SSH. Los escenarios habituales incluyen la instalación de un nuevo paquete o la creación de nuevos usuarios.
En este tutorial, aprenderá a solucionar el error de permiso SSH denegado y a volver a conectarse a su servidor SSH.
Requisitos previos
- Cliente SSH en la máquina local y servidor SSH en el sistema remoto
- Una cuenta de usuario para acceder al servidor remoto (para inicio de sesión basado en contraseña)
- Una cuenta de usuario con sudo o raíz privilegios
¿Qué está causando la denegación del permiso SSH (publickey,gssapi-keyex,gssapi-with-mic)?
Aparece el error Permiso SSH denegado al intentar acceder a un servidor mediante SSH:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
Después de la declaración Permiso denegado, el paréntesis contiene los métodos de autenticación intentados que fallaron al iniciarse la conexión. El error sugiere que la clave pública es el problema, lo cual es engañoso.
Una de las razones del error puede ser sshd_config
, el archivo que contiene la configuración del servidor SSH. La otra posibilidad es que las authorized_keys
El archivo tiene permisos insuficientes. Este archivo contiene la lista de claves públicas para los clientes autorizados a SSH en el servidor. En consecuencia, la incapacidad del sistema para leer el archivo da como resultado el error Permiso denegado.
Cómo reparar el permiso SSH denegado
Ambas soluciones contienen pasos que debe realizar en el lado del servidor. Comience abriendo la terminal en su servidor y continúe con una de las soluciones a continuación.
Solución 1:habilite la autenticación de contraseña
Si desea utilizar una contraseña para acceder al servidor SSH, una solución para corregir el error Permiso denegado es habilitar el inicio de sesión con contraseña en sshd_config
archivo.
Para hacer esto, abra el archivo en un editor de texto. Este ejemplo usa el editor nano:
sudo nano /etc/ssh/sshd_config
En el archivo, busque PasswordAuthentication
línea y asegúrese de que termine con yes
.
Encuentra la ChallengeResponseAuthentication
opción y desactívela agregando no
.
Si las líneas están comentadas, elimine el signo de almohadilla #
para descomentarlos.
Guarde el archivo y salga.
Reinicie el servicio SSH escribiendo el siguiente comando:
sudo systemctl restart sshd
Solución 2:cambiar los permisos del sistema de archivos
No se recomienda utilizar el inicio de sesión basado en contraseña como método de autenticación SSH debido a problemas de seguridad. Por lo tanto, la siguiente solución puede ser preferible ya que soluciona los problemas del método de autenticación de clave pública.
Primero, abra el sshd_config
archivo usando un editor de texto:
sudo nano /etc/ssh/sshd_config
En el archivo, asegúrese de que las siguientes opciones estén configuradas de la siguiente manera:
PermitRootLogin no
PubkeyAuthentication yes
Comente las opciones relacionadas con GSSAPI agregando el signo de almohadilla al principio de la línea:
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
Además, asegúrese de que UsePAM
la línea está establecida en yes
:
UsePAM yes
Guarde el archivo y reinicie el servicio sshd:
systemctl restart sshd
Ahora navegue a su carpeta de inicio y verifique los permisos:
ls -ld
Si sus permisos de propietario no están configurados para leer, escribir y ejecutar (drwx------
), use el comando chmod para cambiarlos:
chmod 0700 /home/[your-username]
Ahora ve a .ssh
carpeta y vuelva a comprobar los permisos:
ls -ld
Este directorio también debe tener permisos de lectura, escritura y ejecución para el propietario del archivo. Para aplicarlos, use chmod
de nuevo:
chmod 0700 /home/your_home/.ssh
El .ssh
la carpeta contiene las authorized_keys
expediente. Verifique sus permisos con:
ls -ld authorized_keys
El propietario del archivo debe tener permisos de lectura y escritura. Para establecerlos, utilice:
chmod 0600 /home/[username]/.ssh/authorized_keys
Ahora intente iniciar sesión con el par de claves nuevamente. El siguiente resultado muestra un intento de inicio de sesión exitoso.