SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.
Permite manejar por completo la computadora mediante un intérprete de comandos (en nuestro caso, la terminal de PuTTY).
¿Por qué securizar el servicio SSH de nuestro servidor?
El la red hay programas que, basándose en diccionario, permiten realizar millones de intentos de conexión por ssh a nuestro servidor, hasta dar con el password de root. Es una cuestión de tiempo.
Hay hasta videos: Ataque de fuerza bruta a SSH con Hydra
Es por ello que la autentificación por usuario/password cada vez se utiliza menos.
Pautas a seguir para securizar el servicio SSH con PuTTY.
Utilizar autenticación mediante el par de llaves pública/privada (Public-Key/Private-Key).
De este modo, y si deshabilitamos el acceso mediante autenticación con usuario/password, solamente podrá acceder al sistema aquel equipo que tenga una llave autorizada en el servidor.
La forma más rápida de crear un par de llaves es entrar en la carpeta donde esta PuTTY, y ejecutar PUTTYGEN.EXE:

Click en Generate:

Guardar la private key:


Y seleccionar la public key:

Una vez seleccionada y copiada, pegarla en un archivo de nombre id_rsa.pub
Ahora...
La llave pública es un archivo de nombre id_rsa.pub
La llave privada es un archivo de nombre private_key.ppk
En Linux o Mac, el binario puttygen sólo tiene una versión cli (desde la terminal).
Si en esos sistemas quisieramos generar el par de llaves (pública y privada), desde una terminal podriamos hacer:
puttygen -t rsa -b 2048 -C "${USER}@${HOSTNAME}" -o private_key.ppk
puttygen -L private_key.ppk -o id_rsa.pub
Si ahora ejecutamos PuTTY, le tenemos que decir que tenemos una clave privada:


También le hemos de decir que trabajará con utf-8:



Y muy importante, que habrá un auto-login de root:

Deberemos añadir el contenido de la llave pública (id_rsa.pub) en el servidor SSH, concretamente en el fichero authorized_keys del usuario con el que vayamos a conectar.
Si fueramos a conectar como root, en nuestro servidor Raspberry Pi añadiríamos el contenido del archivo id_rsa.pub al archivo:
/root/.ssh/authorized_keys
(recuerda que pegar en Linux es Mayúsculas - Insert)
Si no existiera el directorio o el archivo, hemos de crearlos:
mkdir /root/.ssh touch /root/.ssh/authorized_keys
De este modo accederíamos sin password al servidor, pues nuestra llave pública SSH está autorizada en el servidor.
Para permitir solamente el acceso por llave, y no por usuario/password, el archivo /etc/ssh/sshd_config del servidor lo configuraríamos de la siguiente forma:
PermitRootLogin yes AllowUsers root PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys RSAAuthentication no PasswordAuthentication no UsePAM no KerberosAuthentication no GSSAPIAuthentication no
Y solo quedaría asignar los permisos correctos, y reiniciar el servicio ssh:
chmod 0700 /root/.ssh/ chmod 0600 /root/.ssh/authorized_keys service ssh restart