ksergio.com

I love coding

← Volver

Conexión remota con SSH

13/1/2024

SSH vs Telnet

Basicamente Telnet es la tecnología predecesora de SSH. Los comandos que se envian a la máquina remota van en texto plano que podría ser interceptado. Por eso se crea SSH, que encripta los comandos para ser enviados por red de forma segura.

Configurar SSH

Suele venir instalada en distribuciones comunes de Linux. Se puede instalar facilmente con comandos como:

# Instalar el paquete
sudo apt-get install openssh-server

# Habilitar el servicio
sudo systmectl enable ssh

Ahora necesitas tener el cliente para poder realizar las conexiones. Normalmente en Linux ya viene instalado.

Ahora simplemente podemos conectarnos con el siguiente comando.

ssh <nombre_usuario>@<ip_maquina_remota>

El prompt que salta después es una medida de seguridad para comprobar que cuando nos conectemos de nuevo al servidor la key es la misma, en caso contrario nos avisaría.

Si utilizamos contraseña para el acceso nos la pedirá a continuación.

Claves o certificados

Acordarte de todas las contraseñas puede ser complicado. Por eso trabajamos con claves o certificados.

# Generar una nueva clave ssh
ssh-keygen

Por defecto se generan en la carpeta ~/.ssh.

Ahora tenemos que copiar el contenido del certificado público id_rsa.pub

¡Ojo! El público, el privado nunca debe revelarse.

Ahora en la máquina anfitriona debemos pegar en ~/.ssh/authorized_keys el contenido.

Ahora cuando nos conectemos por ssh a nuestra máquina no debería pedirnos la contraseña. Simplemenete con tener las claves es suficiente.

Creando Alias

Recordarse de las IP's no es práctico. Por eso puedo crear un archivo ~/.ssh/config y dentro pegar el siguiente contenido para crear los alias que desee.

Host <nombre_alias>
        HostName <direccion_ip>
        User <nombre_login>
        Port <puerto:por defecto el 22>
        
Host <nombre_alias_2>
        HostName <direccion_ip_2>
        User <nombre_login>
        Port <puerto:por defecto el 22>
...

Notas sobre el puerto y seguridad

Por seguridad podemos cambiar el puerto en el cual funciona el servidor ssh.

vim /etc/ssh/sshd_config

Se busca la entrada Port 22 y se cambia por Port .

Esto puede ser útil para evitar el spam de bots al puerto 22 y ofuscar un poco como funciona la máquina. Pero por contrapartida tenemos que acordarnos en que puerto funciona ahora.

Ahora habría que conectarse de la siguiente forma

ssh <usuario>@<direccion_ip> -p <num_puerto>

SFTP

Una vez configurado el SSH tenemos acceso directamente a los comandos de SFTP y si se desea se puede usar clientes gráficos como Filezilla u otros.