Por defecto, ssh busca id_dsa
y id_rsa
archivos. Las claves no tienen que nombrarse así, puede nombrarlas de la misma mykey
manera 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 IdentityFile
opció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-server
el 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_keys
archivo. Posibles razones por las cuales se niega la clave pública:
/etc/ssh/sshd_config
:
AllowUsers
o AllowGroups
se 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).
DenyUsers
o DenyGroups
se especifica y estás en la lista de usuarios o grupos.
- Estás intentando iniciar sesión como root, pero
PermitRootLogin
está configurado en No
(predeterminado yes
).
PubkeyAuthentication
está establecido en No
(predeterminado yes
).
AuthorizedKeysFile
está 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 yourhost
en lugar de ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender
.