~
se refiere a tu carpeta de usuario y .ssh
es una carpeta oculta (por empezar por .
).Si vas a exponer tu conexión SSH a internet, antes ten en cuenta los siguientes puntos:
Hay numerosos bots que escanean todas las IPs (en IPv4) y tratan de conectarse a puertos comunes (22 para SSH, 80 para HTTP, 443 para HTTPS) e intentan conectarse con usuarios y contraseñas comunes, como la que tiene por defecto la Raspberry, y con usuarios y contraseñas filtrados en dumps.
Por ello, a la hora de hacer la redirección, sería conveniente hacerla desde un puerto no estándar (superior a 1024):
Todas las Raspberries que funcionan con Raspbian tienen como usuario por defecto pi
. Por tanto, es mejor crear otro usuario y trabajar desde éste:
pi
(le dan permisos como por ejemplo ejecutar sudo
o acceder a los logs del sistema), con el comando groups pi
.sudo useradd -G GROUP_LIST -m NAME
, donde GROUP_LIST
son los nombres de los grupos separados por comas y NAME
es el nombre de usuario deseado.sudo passwd NAME
.pi
, muévelos al nuevo usuario: sudo mv /home/pi/* /home/NAME/. && chown NAME:NAME /home/NAME/*
. La segunda parte de este comando (después del &&
) cambia el propietario de los archivos, para que el nuevo usuario los pueda leer y modificar.Primero, configuraremos nuestro usuario para no tener que introducir la contraseña cada vez:
ssh-keygen
y generarás un par de claves. La clave pública está en ~/.ssh/id_rsa.pub
1) y la clave privada está en ~/.ssh/id_rsa
. No compartas la clave privada con nadie, ni siquiera otro dispositivo. Cada cliente debe tener su par de claves..ssh
en tu directorio de usuario (ls .ssh
al conectarte). Si no, créala (mkdir .ssh
). Es una carpeta oculta, así que ls
no la mostrará al listar todo el directorio, si quieres verla, usa ls -a
o la
..ssh/authorized_keys
(por ejemplo, con nano
o vim
) e inserta cada clave pública (una por línea).Ahora, podemos configurar el servidor para que no permita conexiones con contraseña, solo permitirá conexiones con clave pública/privada:
sudo nano /etc/ssh/sshd_config
). En este fichero, el caracter #
da comienzo a un comentario.PermitRootLogin
y cámbiala a PermitRootLogin no
.PasswordAuthentication
y cámbiala a PasswordAuthentication no
.sudo systemctl reload sshd
2)./etc/ssh/sshd_config
y haz otro reload.