87. Conexiones remotas: SSH

 

Tutorial: Conexiones Remotas con SSH en Linux

📋 Introducción a las Conexiones Remotas

Las conexiones remotas son fundamentales en el mundo del networking en Linux. SSH (Secure Shell) es la herramienta más popular para establecer este tipo de conexiones de forma segura.

¿Por qué necesitamos conexiones remotas?

  • Conectarnos a sistemas Linux sin acceso físico

  • Gestionar servidores en la nube (AWS, Azure, Google Cloud, etc.)

  • Administrar máquinas virtuales en diferentes ubicaciones

  • Trabajar con servidores en centros de datos remotos


🛠️ Configuración del Escenario de Prueba

Máquinas Virtuales Utilizadas

  1. Máquina Local (Cliente)

    • Nombre: santi-ubuntu

    • IP: 192.168.239.170

  2. Máquina Remota (Servidor)

    • Nombre: santi-virtual-machine

    • IP: 192.168.239.169

Verificación de Conectividad

bash
# Desde la máquina local, verificar conectividad
ping 192.168.239.169

Salida esperada:

text
3 paquetes transmitidos, 3 recibidos

🔧 Instalación y Configuración de SSH

Arquitectura Cliente-Servidor

  • Cliente SSH: Software para iniciar conexiones (instalado por defecto en Ubuntu)

  • Servidor SSH: Software para aceptar conexiones entrantes

Instalación del Servidor SSH

bash
# Instalar el servidor OpenSSH
sudo apt update
sudo apt install openssh-server

Verificación del Servicio SSH

bash
# Comprobar estado del servicio
sudo service ssh status
# O usando systemctl
sudo systemctl status ssh

Salida esperada: Servicio activo y corriendo


🔄 Estableciendo una Conexión SSH

Conexión Básica

bash
# Sintaxis: ssh usuario@direccion_ip
ssh santi@192.168.239.169

Proceso de Conexión

  1. Primera conexión: Aparece mensaje de verificación de fingerprint

    text
    The authenticity of host '192.168.239.169' can't be established.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    • Escribir yes para continuar

  2. Autenticación: Introducir contraseña del usuario remoto

  3. Conexión exitosa: Aparece el prompt de la máquina remota

Verificación de la Conexión

bash
# Desde la sesión SSH, verificar en qué máquina estamos
hostname
whoami

Resultado: Debe mostrar santi-virtual-machine en lugar de santi-ubuntu


🧪 Ejemplos Prácticos

Trabajando en la Máquina Remota

bash
# Navegar al escritorio remoto
cd ~/Desktop

# Crear archivos en la máquina remota
echo "Este fichero se encuentra en la máquina remota" > fichero1.txt
touch fichero2.txt

# Listar archivos para verificar
ls -la

Salir de la Sesión SSH

bash
# Cerrar conexión SSH
exit
# O usar Ctrl+D

🔒 Seguridad en SSH

Métodos de Autenticación

  1. Usuario/Contraseña (menos seguro)

  2. Claves SSH/Certificados (recomendado)

Ventajas de Usar Claves SSH

  • Mayor seguridad

  • Autenticación automática

  • Requerido por servicios cloud (AWS EC2, etc.)

  • Elimina la necesidad de introducir contraseñas manualmente


📚 Comandos SSH Útiles

Conexión con Puerto Específico

bash
ssh santi@192.168.239.169 -p 22

Ejecutar Comando Remoto sin Shell Interactiva

bash
ssh santi@192.168.239.169 "ls -la /home/santi"

Copiar Archivos con SCP (Secure Copy)

bash
# De local a remoto
scp archivo.txt santi@192.168.239.169:/home/santi/

# De remoto a local
scp santi@192.168.239.169:/home/santi/archivo.txt ./

🎯 Resumen de Conceptos Clave

  • ✅ SSH permite conexiones seguras a máquinas remotas

  • ✅ Funciona con arquitectura cliente-servidor

  • ✅ OpenSSH es la implementación más común

  • ✅ La autenticación por claves/certificados es más segura

  • ✅ Esencial para administración de servidores cloud

  • ✅ Permite ejecutar comandos y transferir archivos de forma segura


🚀 Próximos Pasos

Para profundizar en SSH:

  • Configurar autenticación por claves SSH

  • Personalizar configuración en /etc/ssh/sshd_config

  • Aprender sobre tunneling SSH

  • Explorar herramientas relacionadas (SCP, SFTP, RSYNC over SSH)

¿Tienes preguntas específicas sobre SSH? ¡Déjalas en los comentarios!

Comentarios

Entradas más populares de este blog

83. Sniffers: Wireshark y Tcpdump