# Manual para conexión SSH con Putty

La conexión mediante llaves ssh es una de las formas más eficaces de conectarse a servidores con SSH, permitiéndonos incluso la creación de conexiones desatendidas que no requieren la interacción del usuario. Es un sistema basado en un par de llaves, la llave pública y la llave privada

La seguridad esta garantizada en tanto y cuanto nuestra llave privada no sea violada. En caso de dudas de una intrusión con capacidad de lectura de nuestro sistema, deberemos anular el par de llaves.

# Putty

# Instalación

Descargar PuTTy e instala PuTTY en tu ordenador Windows. Es una operación sencilla.

# Llaves

PuTTy instala de forma un programa adicional llamado PuTTYGen, que es un generador de llaves que nos facilitará la generación de nuestro par de llaves compatibles con OpenSSH.

Recuerda que en Windows tienes un buscador 🔍 que te permite localizar las aplicaciones instaladas

PuTTYGen

  1. Click en el botón Generate
  2. Mover durante un tiempo en la casilla superior donde aparece el mensaje en inglés que nos solicita realizar esta acción.
  3. Copiar y pegar el contenido de la casilla que ha aparecido bajo la linea que indica Public key for pasting into OpenSSH authorized_keys file y guardarlo en un fichero de texto ASCCI (Notepad)
  4. Click en el botón Save public key (aconsejado usaer el nombre con la extensión .pub)
  5. Click en el botón Save private key (aconsejado el mismo nombre sin poner extensión ya que PuttyGen se encargará de añadirle la extensión)

Es aconsejable que guardes tus llaves en una carpeta, que hallas creado previamente o que si abacas de crear, este en tu directorio personal (no público) y configurada para esta oculta

Las llaves en formato propietario que has guardado en los dos último pasos no sirven para poner en el servidor salvo que las adaptes. Para el servidor *nix necesitas la del paso 3

PuTTYGen

Para mi es habitual y seguro el uso de una llave de 2048 bits, que guardo cuidadosamente en un directorio de mis dispositivos que esta oculto y con permisos de sólo lectura para el propietario. Como ademas uso esa llave para muchas operaciones basadas en scripts

# Llaves formato OpenSSH

Algunos programas como TablePlus no permiten el uso de las llaves con formato PuTTY, asi que debemos salvar la llave privada con formato OpenSSH.

PuTTYGen Exportar llave formato OpenSSH

Esto creará en la carpeta elegida un fichero de textos ASCII, con la llave privada en formato OpenSSH, que podremos usar con programas como TablePlus

# Instalar las llaves en el servidor

Las llaves deben ser instalada en el servidor al que queremos acceder via SSH, con las siguientes condiciones:

  • El servidor SSH debe aceptar como método de autentificación el uso de llaves que como norma general esta permitido.
  • El path habitual en las distribuciones mas comunes para la ubicación de las llaves es /user_path/.ssh/
  • El nombre del fichero es authorized_keys
# /etc/ssh/sshd_config
AuthorizedKeysFile     .ssh/authorized_keys
  • El usuario root puede tener configurado el acceso si el administrador lo permite. Puede acceder con llave pero no con password aunque el servidor permita el uso de contraseña
# /etc/ssh/sshd_config
PermitRootLogin prohibit-password 

Existen muchas posibilidades de configuración con el método de autentificación basado en llaves, como por ejemplo limitar el uso de ssh a determinado comandos

Con esta información deberemos copiar el contenido de nuestra llave pública en ese fichero.
Si no disponemos de acceso inicial ya que no somos root o por cualquier otra circunstancia, deberemos facilitar la llave pública al administrador del sistema.

# Ejemplo para autorizar la llave en shell

Valido si copiamos y pegamos la llave

echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzsMe4RJWv0hQZSklajdjkwjwj...........+ykkKwVh1M4ZJ8nm+MUsJ9OFh9r6kZ5NgrLvnbMZRCBviBTOf5DuZTiKWm6wg/h4hHO1rmnDQ== miuser@misistema' >> ~/.ssh/authorized_keys

Valido si lo que usamos es el fichero de la llave público creado con PuTTYGen cuyo formato no es valido para añadir al fichero de autorizaciones

abkrim@hq:~$ echo '---- BEGIN SSH2 PUBLIC KEY ----
> Comment: "rsa-key-20200403"
> AAAAB3NzaC1yc2EAAAABJQAAAQEAnwC56GlG/4lRkknIKVL9EWoD0jI6nyB2VBXa
> smu9+znUYIlDpcD2MvlnYMQAqswqLwajgxSQIgmDbt0v2jEQXq7WupLf2LwlM9nl
> 4Q0DUTH9sxtK8D69d/Ewb5X+iWSNtUnPSoOdI83L3fkzDEIVSbN8Mas5N3YLiV3n
> +lMSh8TPfbl0hKqVoU/Kn9oivYRDDbV7ZKY2rVohdwdrktbGMGIz3nz+STYodz/8
> ajvf9Qebx0L0M5Kq9YnGfdBnzwFARNoaZQmBIPJ9qDDWOcbuV0keXCNe5BbhLgxZ
> holEdx8inoNrpQA775MmxgBKaB8xayl59XiVaMp1Vvv2A+R27Q==
> ---- END SSH2 PUBLIC KEY ----' >> mi_key.pub
abkrim@hq:~$ ssh-keygen -i -f mi_key.pub > openssh_my_key.pub
abkrim@hq:~$ cat openssh_my_key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAnwC56GlG/4lRkknIKVL9EWoD0jI6nyB2VBXasmu9+znUYIlDpcD2MvlnYMQAqswqLwajgxSQIgmDbt0v2jEQXq7WupLf2LwlM9nl4Q0DUTH9sxtK8D69d/Ewb5X+iWSNtUnPSoOdI83L3fkzDEIVSbN8Mas5N3YLiV3n+lMSh8TPfbl0hKqVoU/Kn9oivYRDDbV7ZKY2rVohdwdrktbGMGIz3nz+STYodz/8ajvf9Qebx0L0M5Kq9YnGfdBnzwFARNoaZQmBIPJ9qDDWOcbuV0keXCNe5BbhLgxZholEdx8inoNrpQA775MmxgBKaB8xayl59XiVaMp1Vvv2A+R27Q==
abkrim@hq:~$ cat openssh_my_key.pub >> .ssh/authorized_keys

Para cPanel recomiendo el uso de la herramienta de cPanel que nos permite importar la clave publica y autorizarla (mejor si usamos la clave publica que nos aparece en el generador que convertir usando la que hemos guardado).

# Configuración de una conexión remota

En un PuTTy por defecto sólo deberemos configurar lo siguiente, (como norma general ya que puede ser que debemos consultar con el administrador del sistema)

# Session

Session

  • Host Name (or Ip address)
  • Port -> Es obligatorio si el puerto no es el puerto por defecto "22"
  • Connection type: -> SSH

# Connection > Data

Connection

  • Auto-login username -> Nombre del usuario con el que queremos acceder y en el que autorizamos nuestra llave

# Connection > SSH > Auth

Auth

  • Private key file for authentication -> Importante elegir la llave private correcta, es decir la correspondiente a la llave publica que hemos autorizado

# Conexión

Antes de intentar conectarnos es importante salvar nuestra conexión para evitar tener que repetir el proceso. (Opción en la categoría Session)

  • Hacemos click en el botón open
  • Y feliz trabajo en nuestra sesión de terminal

Sesión

# Otros recursos

Last Updated: 4/27/2020, 1:15:58 PM