Introducción
Vamos a ver como hacer que el usuario de una máquina con servidor SSH (“servidor”) confíe en unas claves SSH. De esta manera podemos acceder al equipo sin utilizar un par usuario/password del servidor.
Si además los ficheros de claves ssh no tienen “passphrase” las conexiones ssh (ssh, scp…) se realizarán sin preguntar nada al usuario. Esto es cómodo pero altamente peligroso y desaconsejado.
Lo que se recomienda es no permitir acceso usuario/clave al servidor sino solo por ficheros ssh y que éstos tengan clave (passphrase).
De esta forma para acceder al equipo hace falta disponer de algo (fichero de claves) y conocer algo (passphrase).
Notas
- La confianza la establece un usuario concreto del equipo “servidor”.
- El servidor debe estar configurado para aceptar confianzas (por omisión lo está).
- Recordemos que la clave pública (id_rsa.pub), no hace falta protegerla, es pública y puede transmitirse en claro si es necesario.
- Recordemos que la clave privada (id_rsa) es fundamental protegerla, es privada y solo debe transmitirse por medios seguros. Éste es el fichero que tendremos que llevar con nosotros para conectar con el servidor y que deberemos proteger con la passphrase.
- Si se accede a diferentes servidores los ficheros de clave privada pueden renombrarse libremente, por ejemplo como id_rsa-servidor.
- Un mismo usuario de un mismo servidor puede disponer de diferentes pares de claves
- Una confianza (par de claves) puede configurarse para incluir limitaciones
Configuración
Primero generamos las claves ssh (esto se puede hacer desde cualquier equipo):
Esto generará una clave privada (id_rsa) y una clave pública (id_rsa.pub).
Después autorizamos en el servidor el acceso a la clave pública.
Ajustamos los permisos:
$ chmod 600 ~/.ssh/*
$ chmod g-w ~/
Opcionalmente se pueden incluir opciones en la clave autorizada, como command=”command”, no-pty, no-port-forwarding… (man sshd).
Uso
Desde cualquier equipo si se dispone de la clave privada (id_rsa) de puede acceder al servidor mediante:
También puede utilizarse toda la potencia de ssh, por ejemplo:
Se recomienda cambiar la passphrase regularmente.
Para cambiar (o des/asignar) una passphrase de un fichero de claves hacemos:
Cliente PuTTY para Windows
Para usar la clave en PuTTY (Windows):
- Copiamos la clave privada al equipo
- Usamos PuTTYGen para importar la clave y guardarla como .ppk
- Conversions->Import key
- Introducir la passphrase
- Pulsar “Save private key” y guardarla con extensión .ppk
- Al hacer la conexión, en el menú SSH->Auth seleccionamos nuestro fichero .ppk
- Si al conectar muestra el error “Key is of wrong type (PuTTY SSH2 private key)“, seleccionar en PuTTY Connections->SSH el protocolo “2”.
Otros artículos relacionados
Configuración de ssh
Túneles SSH
Uso de ssh
Uso de scp
sshfs – Montando recursos mediante SSH y FUSE