Entorno de trabajo: Autenticación SSH usando claves
El uso de claves SSH permite la conexión a un servidor sin necesidad de utilizar las tradicionales claves de acceso. El uso de claves SSH está considerado como una buena práctica de seguridad.
La configuración a realizar para usarlas es muy sencilla, sobre todo entre dos equipos que utilizan el mismo software, habitualmente OpenSSH. En el caso no ser así, se complica algo más si los formatos de clave utilizados no son los mismos. Veamos el caso de un servidor OpenSSH (el utilizado en la mayoría de los sistemas Linux) y PuTTY como cliente Windows.
Configuración en el servidor
En primer lugar debemos crear la pareja de claves utilizando el comando
ssh-keygen -t rsa
La "passphrase" utilizada para proteger el acceso indebido a nuestra clave, debe ser lo suficientemente robusta, al menos 8 posiciones mezclando caracteres, números y símbolos.
Una vez generadas la pareja de claves, limitaremos el acceso a ellas de cualquier otro usuario:
cd .ssh chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa.pub
Copiamos la clave pública generada a la lista de claves permitidas para conexión de este usuario
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2 chmod 600 ~/.ssh/authorized_keys2
Con este último paso hemos finalizado la configuración en el servidor. El resto del proceso se realiza en la parte cliente, es decir, en Windows.
Configuración en el cliente
PuTTY no maneja directamente las claves generadas por OpenSSH pero puede importarlas y convertirlas a su formato. En primer lugar debemos copiar a nuestro equipo Windows el archivo "id_rsa" generado anteriormente.
Para realizar la conversión se utiliza la aplicación PuTTYgen incluida en PuTTY
El proceso es muy sencillo, tan solo hay que importar la clave privada (archivo id_rsa) generada en el servidor
Una vez hayamos abierto la clave podremos identificarla usando "Key comment" y protegerla con una "Key passphrase"
Para finalizar el proceso, usando el botón "Save private key" guardaremos la clave en el formato adecuado para ser utilizada por PuTTY.
Acceso desde PuTTY
Si todo ha ido bien ya podremos emplear nuestro nuevo modo de acceso. Para ello haremos uso de la aplicación Pageant incluida en PuTTY.
Al lanzar Pageant, este se ubica en la barra de iconos. Si accedemos a su menú contextual podremos añadir la clave que deseamos utilizar para conectarnos.
Es en este momento cuando nos pedirá la "Key passphrase" introducida anteriormente.
Una vez hecho esto, cuando desde PuTTY nos conectamos al servidor, sin intervencion por parte del usuario, se detecta automáticamente que clave se debe utilizar y se accede al sistema
Limpio, cómodo y seguro.
Imprimir este artículo
Aún no hay trackbacks.














18 Enero, 2012 - 04:03
Hola, tengo unas cuestiones sobre uso o buena práctica acerca de SSH que tal vez pueda responderme:
1. Si es buena idea deshabilitar el login de usuario por contraseña en sshd_config (PasswordAuthentication no) y que la conexión se establezca ÚNICAMENTE con el par de llaves. Entiendo que de ser así, lo que se gana es la imposibilidad de atacar la contraseña del usuario mediante fuerza bruta, ya que al atacante necesitaría la llave privada, más difícil de obtener si no es por intrusión y robo. En caso de ser buena práctica: ¿es necesario proteger la llave privada mediante phrase?, ¡al final estamos introduciendo una clave para el acceso como en login shell!
2. ¿Una llave creada por el usuario fulano en el host1 puede ser usada por el usuario mengano en el host2? Esto es, ¿debe existir fulano en el host2? De ser posible sería teniendo la llave pública en authorized_keys del host2, entiendo.
3. Si es bueno crear un usuario específico para la conexión, por ejemplo adminssh. Por un lado, es un impedimento más a la hora de perpetrar una intrusión ya que es necesario averiguar un usuario válido de entrada (AllowUsers), por otro lado, en caso de realizarse la intrusión evitamos mostrar los archivos de un usuario común -si los hubiera-. También podría enjaularse al usuario mediante chroot.
3. He leído acerca de la buena práctica de crear una contraseña fuerte para root, pero mi duda es, si se inutiliza el login de root y mediante “su” la conexión es cifrada, ¿realmente es necesario una contraseña fuerte? Esto viene a cuento de que una contraseña larga o compleja es de difícil memorización y tiende a apuntarse en papel o archivo digital, que es de mal hábito.
Gracias.
22 Enero, 2012 - 10:38
Hola Anon,
Como veras, la respuesta a tus preguntas depende mucho del entorno al que nos estemos refiriendo: No es lo mismo un servidor SSH accesible desde Internet, que otro sólo accesible desde una red privada. Mi punto de vista es que las medidas de seguridad deben ser proporcionales a la “sensibilidad” del servidor accedido.
authorized_keyssuEn fin, como puedes ver en mis respuestas hay muchos “condicionales”, en estas materias cada administrador de sistemas tiene sus costumbres/buenas prácticas preferidas.
Un saludo.