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 CMD).
¿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.
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 abrir una terminal CMD

y ejecutar el siguiente comando:
ssh-keygen -t rsa


Este comando generará una llave pública y una privada, por defecto en el directorio C:\Users\tu_usuario\.ssh

La llave pública es un archivo de nombre id_rsa.pub
La llave privada es un archivo de nombre id_rsa
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
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