Por defecto, ssh busca id_dsay id_rsaarchivos. Las claves no tienen que nombrarse así, puede nombrarlas de la misma mykeymanera o incluso colocarlas en un directorio diferente. Sin embargo, si hace cualquiera de esos, entonces necesita hacer referencia explícita a la clave en el comando ssh de la siguiente manera:
ssh user@server -i /path/to/mykey
Si un comando no acepta -i, por ejemplo sshfs, use la IdentityFileopción:
sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint
Cómo funciona
Al generar una clave, obtendrá dos archivos: id_rsa(clave privada) y id_rsa.pub(clave pública). Como lo sugieren sus nombres, la clave privada debe mantenerse en secreto y la clave pública puede publicarse.
La autenticación de clave pública funciona con una clave pública y una privada. Tanto el cliente como el servidor tienen sus propias claves. Al instalar openssh-serverel servidor, las claves públicas y privadas se generan automáticamente. Para el cliente, tendrá que hacerlo por su cuenta.
Cuando usted (cliente) se conecta con un servidor, se intercambian claves públicas. Recibirá los servidores uno y el servidor suyo. La primera vez que reciba la clave pública del servidor, se le pedirá que la acepte. Si esta clave pública cambia con el tiempo, se le advertirá porque se está produciendo un posible ataque MITM (Hombre en el medio), interceptando el tráfico entre el cliente y el servidor.
El servidor verifica si tiene permiso para conectarse (definido en /etc/ssh/sshd_config) y si su clave pública aparece en el ~/.ssh/authorized_keysarchivo. Posibles razones por las cuales se niega la clave pública:
/etc/ssh/sshd_config:
AllowUserso AllowGroupsse especifica, pero el usuario de su servidor no figura en la lista de grupos o usuarios (el valor predeterminado no está definido, lo que no restringe el inicio de sesión de los usuarios o grupos).
DenyUserso DenyGroupsse especifica y estás en la lista de usuarios o grupos.
- Estás intentando iniciar sesión como root, pero
PermitRootLoginestá configurado en No(predeterminado yes).
PubkeyAuthenticationestá establecido en No(predeterminado yes).
AuthorizedKeysFileestá configurado en una ubicación diferente y las claves públicas no se agregan a ese archivo (predeterminado .ssh/authorized_keys, relativo al directorio de inicio)
~/.ssh/authorized_keys: su clave pública no se agrega a este archivo (tenga en cuenta que este archivo se lee como usuario root)
Usando múltiples llaves
No es raro usar múltiples claves. En lugar de correr ssh user@host -i /path/to/identity_file, puede utilizar un archivo de configuración, ~/.ssh/config.
Las configuraciones comunes son IdentityFile (las claves) y el puerto. La siguiente configuración verificará "id_dsa" y "bender" solo cuando se conecte con ssh youruser@yourhost:
Host yourhost
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/bender
Si omite Host yourhost, la configuración se aplicará a todas las conexiones SSH. Otras opciones también se pueden especificar para este partido anfitrión, como User youruser, Port 2222, etc. Esto permitirá conectar con la abreviatura ssh yourhosten lugar de ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender.