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 clave/usuario 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_dsa.pub), no hace falta protegerla, es pública y puede transmitirse en claro si es necesario.
- Recordemos que la clave privada (id_dsa) 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_dsa-servidor.
Configuración
Primero generamos las claves ssh (esto se puede hacer desde cualquier equipo):
Esto generará una clave privada (id_dsa) y una clave pública (id_dsa.pub).
Después autorizamos en el servidor el acceso a la clave pública.
Ajustamos los permisos:
$ chmod 600 ~/.ssh/*
$ chmod g-w ~/
Uso
Para cambiar (o des/asignar) una passphrase de un fichero de claves hacemos:
Se recomienda cambiar la passphrase regularmente.
Desde cualquier equipo si se dispone de la clave privada (id_dsa) de puede acceder al servidor mediante:
También puede utilizarse toda la potencia de ssh, por ejemplo:
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″.