DEV Community

Cover image for conexión segura ssh para la RaspberryPi(FreeBSD,Linux)
Glorious Musketeer™
Glorious Musketeer™

Posted on

conexión segura ssh para la RaspberryPi(FreeBSD,Linux)

OpenSSH SSH client(SSH) es un protocolo de administración remota que le permite a los usuarios controlar y modificar sus servidores remotos a través de Internet a través de un mecanismo de autenticación.

La conexión SSH está cifrada de extremo a extremo además de necesitar una autenticación para poder conectar al servidor. SSH funciona de manera similar a Telnet, pero al contrario que este, con SSH todos los datos que se envían desde el cliente al servidor, y los que se reciban desde el servidor al cliente viajan cifrados para que nadie pueda interceptar la información dotando de una capa extra de seguridad con respecto a Telnet.

Este tutorial de SSH cubrirá los conceptos básicos de cómo funciona, junto con las tecnologías subyacentes utilizadas por el protocolo SSH para ofrecer un método seguro de acceso remoto.

¿Cómo ingresamos mediante SSH?

abrimos el emulador de terminal del DE(Desktop Environment) o WM(Window Manager) que usemos:

aplicamos el siguiente comando:

ssh $USER@$HOST
Enter fullscreen mode Exit fullscreen mode

$USER -> username el cual nos vamos a conectar
$HOST -> ip el cual nos vamos a conectar.

Aquí vamos a destacar que no podremos ingresar con root y solo se podra entrar con un username el cual vamos a permitir tener acceso a ssh.

Paso 1: Configurar el archivo sshd_config

El archivo sshd_config se encuentra en la ruta /etc/ssh/sshd_config, con nuestro editor de texto favorito lo abrimos:

Editores:
nano
vim
emacs
vi ☑
Enter fullscreen mode Exit fullscreen mode

En este caso vamos a usar vi como editor de texto para configurar pero puedes usar el que más les guste.

escribimos lo siguiente en la terminal:

# -> root
$ -> user
Enter fullscreen mode Exit fullscreen mode

# vi /etc/ssh/sshd_config

una vez dentro desmarcamos (#) a Port y agregamos allowuser para permitirle a ssh solo entrar por ese usuario, también desmarcamos AuthorizedKeysFile, PasswordAuthentication, PermitEmptyPasswords y ChallengeResponseAuthentication

# quitamos (#) de port
Port 22
#add allowuser
allowuser usuario1
# quitamos (#) y le cambiamos yes por no a los que lo tengan.
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
Enter fullscreen mode Exit fullscreen mode

usuario1 será el username que vamos a permitir conectar por ssh

Crear usuario1

FreeBSD
En la terminal escribimos el comando:
Create User

Linux
useradd -m -G wheel -s /bin/{bash o zsh} usuario1
passwd usuario1

Paso 2: Configurar authorized_keys

creamos un archivo con nombre authorized_key en la ruta ~/.ssh/

vi ~/.ssh/authorized_keys

*dentro debe ir la key que creaste a la máquina que quieres conectar a la raspberry pi, de lo contrario no podras conectarte a SSH.

Creando clave pública para ssh de la máquina que queremos conectar a la raspberry pi.

Con ED25519:
ssh-keygen -t ed25519 -C "correo electronico"
con RSA a 4096:
ssh-keygen -o -t rsa -b 4096 -C "correo electronico".

Abrimos la terminal en la máquina que quermos conectar a la raspberry pi y escribimos:
ED25519
cat ~/.ssh/id_ed25519.pub
RSA
cat ~/.ssh/id_rsa.pub
La salida de ese archivo debemos agregarla en la raspberry pi en la ruta:
vi ~/.ssh/authorized_keys
una vez todo configurado basta con reiniciar el servicio o reiniciar el sistema.

Paso 3: Reiniciar servicios de la raspberry pi.

En FreeBSD:
# service sshd restart
En Linux:
con SysVinit:
# service sshd restart
con SystemD
# systemctl restart sshd.service
con OpenRC
# rc-service sshd restart

con esta configuración tendremos una sessión de ssh mejor controlada y limitando a usuario específico.

por último hacemos un reboot(no obligatorio) y desde la máquina que agregamos al authorized_key ingresamo el siguiente comando para entrar a la raspberry pi:

ssh usuario1@ip_usuario1 -p 22
Enter fullscreen mode Exit fullscreen mode

si todo funcionó correctamente, al momento de ejecutar este comando no tendras que agregar la contraseña de usuario1. Por que esta configurado con authorized_keys.
SSH

Oldest comments (0)