Configuracion de PuTTY para acceder a instancias en AWS via Bastion Host.
Introducción
Las VMs en nuestro entorno de AWS solo permiten el acceso utilizando un par de claves públicas y privadas. La clave privada nunca debe ser compartida y debe estar donde se inicializa la conexión SSH (origen) y la clave pública se guarda en el home del usuario en el archivo ~/.ssh/authorized_keys (destino). Esta es una guía para usuarios con sistema operativo Windows.
Diagrama de conectividad usando jumpbox o bastion host.
Crear par de claves públicas y privadas con PuTTYGen o PuTTY Key Generator
Abrimos la aplicación:
Presionamos el botón Generate y movemos el mouse en el espacio donde dice Key
.
Al finalizar nos aparecerá la clave pública. Opcionalmente podemos poner el nombre de usuario en el Key Comment
Luego presionamos Save private key
y seleccionamos que se va a guardar sin passphrase. Presionamos Yes
.
Ahora este archivo va a estar en formato .ppk
que es propio de PuTTY.
Agregar las claves publicas en los servidores o instancias de AWS
Ahora nos queda agregar la clave pública en el archivo ~./ssh/authorized_keys. Allí abrimos un editor de preferencia en el servidor de bastion o jumpbox y en los servidores de la red privada que necesitemos acceder.
Obs: la salida fue ofuscada.
Configurar el agente PageAnt
Bien, ahora que todos los servidores poseen las claves públicas, debemos configurar el agente que va almacenar las claves privadas que anteriormente guardamos y que están en formato ppk. El agente es pageant.exe. En este programa debemos agregar dichas claves con el botón “Add Key”
Obs: la salida fue ofuscada.
Este programa se estará ejecutando en background al cerrar.
Configuración de PuTTY SSH con Agent Forwarding
Por último, ahora debemos configurar PuTTY para la conexión a los servidores. En nuestra configuración primero nos conectamos al Jumpbox y luego saltamos a los servidores de la red privada usando directamente ssh <hostaname / ip destino>
.
Abrimos PuTTY y cargamos en la sección de Host Name
el nombre de usuario o login y el nombre del Jumpbox/Bastion host.
Obs: la salida fue ofuscada.
Luego en la sección de SSH -> Auth, tildamos la opción “Allow agent forwarding”
Con esta configuración de agent forwarding
nos permitirá conectarnos vía ssh a los servidores donde están configurados nuestras llaves sin necesidad de ingresar la contraseña. Por último abrimos la conexión con Open
Obs: la salida fue ofuscada.
Conclusión
Esta es una guía práctica de como configurar PuTTY para conectarse a AWS utilizando agent forwarding.
A continuación les comparto un playbook de Ansible que puede a ayudar a configurar múltiples servidores.
Referencias:
- Configurar el inicio de PageAnt en Windows gistfile
- Bastion Host AWS