Si la clave no se llama id_rsa, no funciona

14

Creé una clave para conectarme en SSH con una frase de contraseña. He nombrado mi clave id_rsa_admin. Cuando inicio sesión, aparece el siguiente mensajePermission denied (publickey).

En los registros, encuentro que ssh busca un archivo id_rsay, por lo tanto, no encuentra el archivo correcto.

Me parece que si la clave no tiene nombre id_rsa, no funciona.

¿Cómo conectarse en ssh?

~/.ssh/id_rsa_admin

ssh [email protected] -p 9215
Mathieu
fuente

Respuestas:

39

La respuesta de Arronical es buena para una conexión única, pero sería dolorosa a largo plazo. Para que sshsiempre use esta clave cuando se conecte a este servidor, puede agregarla a su ~/.ssh/config(o crearla si no existe):

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin

Entonces puedes conectarte con solo ssh [email protected] -p 9215. Como una ventaja adicional, también puede configurar el puerto:

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
    Port 9215

Entonces puedes conectarte con solo ssh [email protected]. Aún más:

Host vps718449.ovh.net vps
     Hostname vps718449.ovh.net
     User admin
     IdentityFile ~/.ssh/id_rsa_admin
     Port 9215

¡Entonces simplemente ssh vpsfuncionará! Por supuesto, vpses solo un ejemplo, puede usar cualquier otro alias que desee (por ejemplo, si tiene más de un VPS). Consulte man ssh_configpara obtener una lista de las opciones que puede configurar allí.

fkraiem
fuente
@fkraiem gracias. ¿Cómo hacer con tres llaves?
Mathieu
1
@Mathieu ¿Por qué tres llaves? Si es para tres hosts diferentes, simplemente agregue una entrada para cada host, cada uno con la clave correspondiente.
fkraiem
@fkraiem Tengo 3 claves diferentes en el mismo servidor pero para 3 usuarios
Mathieu
@ Mathieu No puedo confirmar esto en este momento, pero creo que solo agregar tres IdentityFilelíneas en la Hostsección debería funcionar. Además, si coloca una Userlínea, ese usuario se convertirá en el predeterminado cuando se conecte a ese host, pero aún puede anularlo con @.
fkraiem
@fkraiem Muchas gracias. Funciona, pero se muestra el siguiente error: "El agente admitió un error al firmar con la clave". Utilizo "SSH_AUTH_SOCK = 0" para conectarme, pero debe hacerse en cada reinicio. ¿Hay algún otro saludo?
Mathieu
16

Debe usar la -iopción para su comando ssh usando la ruta a su clave. El comando modificado será:

ssh -i ~/.ssh/id_rsa_admin [email protected] -p 9215
Arronico
fuente
gracias. Con su respuesta, se muestra el siguiente error "ssh: No se pudo resolver el nombre de host i: Nombre o servicio desconocido"
Mathieu
55
Poner -iantes del nombre de host también funciona; Creo que @Mathieu simplemente olvidó el guión. : p
fkraiem