Si obtenemos el error failed publickey for “username” , al intentar acceder por SSH con clave privada,está claro que tenemos algún problema con nuestras claves privadas/públicas SSH (bien en el server o en el cliente).


 
Si analizamos el archivo /var/log/auth.log, podremos ver el error mencionado. En este caso vemos failed publickey for usuario …
 
   

 
 
Pongámonos en situación: 

– Tenemos un servidor SSH Linux, en el que ya hemos copiado la clave pública para un usuario, y vamos a intentar acceder por SSH desde un cliente con la clave privada. 

 

– Abrimos Putty desde un cliente Windows y tecleamos [email protected]_equipo 

– por ejemplo: [email protected]


 

-Añadimos el archivo de clave privada desde la sección : Connection/SSH/Auth/Private Key for authentication

—–> (Previamente tenemos que haber generado la clave pública y la clave privada. Podemos hacerlo en Windows con PuttyGen. Y después de generarlas, guardar en el equipo cliente la clave privada, y en el equipo servidor, guardar la clave pública en el archivo /authorized_keys).
 

 
 


 

 

Si ya hemos hecho esto, procedemos. Seleccionamos la clave privada del equipo cliente (Browse…) y pulsamos sobre Open para comenzar la conexión SSH:


 

 

Y nos encontramos con el error

 

Server refused our key


 

 

 

 

Parece ser que el servidor rechaza la clave privada que usamos para conectar.  

Puede que no sea compatible con la clave pública del server, que no esté correctamente copiada, que el archivo en el que se encuentran las claves no esté bien configurado o le falten los permisos adecuados …

 

 

BUSCANDO LA CAUSA DEL ERROR failed publickey for “username” EN AUTH.LOG

 
– Para encontrar la raíz del error podremos revisar el log de autenticaciones: /var/log/auth.log

– Y ya podremos ir atando cabos.

 

–> Y parece que en este caso no podemos conectar porque el archivo authorized_keys del usuario2 NO HA SIDO CREADO:

1
No such file or directory

 

 

 

Así que procedemos a realizar los pasos necesarios: Crear el fichero authorized_keys en su ruta correspondiente, y aplicar los permisos necesarios al directorio y al fichero.

 

 

REQUISITOS DEL ARCHIVO authorized_keys

 

Lo que debemos revisar primero es:  

– El fichero /home/usuario/.ssh/authorized_keys ha de estar creado y tener los permisos 600  

– a su vez, el directorio /home/usuario/.ssh debe tener los permisos 700  

– y el directorio .ssh también ha de tener como propietario al propio usuario. lo haremos así:

1
chown -R usuario:grupousuario .ssh

 


 

 

 
donde ponemos grupousuario, se entiende que es el grupo de mismo nombre que el usuario, que se crea al crear un usuario.

Aunque en la captura de pantalla ponga /home/usuario1, realmente lo estamos aplicando en el directorio /home/usuario2
 

 

ACCESO CORRECTO POR SSH CON CLAVES PRIVADA Y PUBLICA

 
Y ya podemos proceder a entrar por SSH correctamente, ya que veremos un mensaje parecido al siguiente:
 

1
Authenticating with public key "rsa-key-20171017"

 
Si recibimos el mensaje Authenticating with public key …..   es que la clave es correcta y el servidor nos permite acceder por SSH.
 
 

 

 

MÁS INFO DEL AUTH.LOG (ACCESO SSH CORRECTO)

 

Y ya por curiosidad, vamos a analizar también el log o registro de las autenticaciones para ver cómo se nos permite realizar el logging.

 

Veremos el mensaje: matching key found


 

 

y el mensaje: accepted publickey for usuario from 192.168…. port 8218 ssh2: RSA ….

 

 

 

Así que si recibimos el error “failed publickey for “username”“, al acceder a nuestro servidor SSH por medio de claves públicas y privadas, ya hemos visto qué pasos podemos realizar para solucionarlo.


 


Etiquetas del articulo: , , ,