Guía de tecnologías

SSH en Mac: guía completa con Terminal

7 min read Tutorial Actualizado 25 Sep 2025
SSH en Mac con Terminal: guía práctica
SSH en Mac con Terminal: guía práctica

Por qué usar SSH en Mac

SSH (Secure Shell) es un protocolo que crea un canal cifrado para administrar máquinas remotas y transferir archivos. Es la forma estándar y segura de trabajar con servidores, contenedores y otras máquinas desde la línea de comandos en macOS.

Importante: antes de cambiar configuraciones en servidores de producción, prueba en un entorno controlado.

Cómo usar SSH en un Mac con Terminal — guía completa

1. Abrir Terminal

Opciones rápidas para abrir Terminal en macOS:

  • Spotlight: pulsa Command + Space, escribe Terminal y pulsa Enter.
  • Finder: Aplicaciones > Utilidades > Terminal y haz doble clic.

Si prefieres iTerm2 u otro emulador, puedes usarlo en lugar de Terminal; las instrucciones de SSH son las mismas.

2. Iniciar una conexión SSH básica

Requisitos: la dirección IP o el nombre de dominio del servidor y un usuario válido en ese servidor.

En Terminal escribe:

ssh usuario@direccion-ip-o-dominio

Ejemplo:

La primera conexión pedirá verificar la huella del host. Escribe yes y pulsa Enter para añadir la entrada a tu archivo known_hosts. A continuación se pedirá la contraseña, salvo que uses autenticación por claves.

Nota: si el servidor usa un puerto distinto del 22 añade -p 2222 o configura el puerto en ~/.ssh/config.

3. Autenticación con claves (sin contraseña)

Generar un par de claves en tu Mac (si no lo tienes):

ssh-keygen -t ed25519 -C "[email protected]"

Pasos clave:

  • Acepta la ubicación por defecto: ~/.ssh/id_ed25519
  • Elige una frase de paso (passphrase) para mayor seguridad o deja en blanco si lo necesitas para scripts automatizados.

Copiar la clave pública al servidor (método recomendado):

ssh-copy-id usuario@direccion-ip-o-dominio

Si ssh-copy-id no está disponible, copia la clave manualmente:

cat ~/.ssh/id_ed25519.pub | ssh usuario@direccion-ip 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'

Probar la conexión ahora no debería pedir contraseña. Para usar un agente que almacene la clave en memoria:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

En macOS puedes añadir la opción UseKeychain en ~/etc/ssh/ssh_config para integrar con el llavero.

4. Archivo de configuración útil (~/.ssh/config)

Crear un alias por host ahorra tecleo y configura parámetros por host. Ejemplo de ~/.ssh/config:

Host mi-servidor
  HostName 198.51.100.23
  User maria
  Port 2222
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 60
  Compression yes

Con esto te conectas simplemente con:

ssh mi-servidor

5. Transferir archivos: scp y rsync

scp (copiar archivos seguro):

Copiar local a remoto:

scp archivo.txt usuario@servidor:/ruta/destino/

Copiar remoto a local:

scp usuario@servidor:/ruta/archivo.zip ./

Para carpetas recursivas añade -r.

rsync sobre SSH, recomendado para sincronizaciones y reanudar transferencias:

rsync -avz -e "ssh -p 2222" ./carpeta usuario@servidor:/ruta/destino/

rsync usa comparaciones inteligentes para enviar solo cambios.

6. Reenvío de puertos y túneles SSH

Reenvío local (accedes a un servicio remoto como si fuera local):

ssh -L 8080:localhost:80 usuario@servidor

Esto hace que http://localhost:8080 en tu Mac se redirija al puerto 80 del servidor.

Reenvío remoto (exponer un puerto local al servidor remoto):

ssh -R 9000:localhost:3000 usuario@servidor

Túnel dinámico (proxy SOCKS):

ssh -D 1080 usuario@servidor

Configura el navegador para usar localhost:1080 como proxy SOCKS5.

7. Gestión de sesiones y atajos útiles

Comandos básicos una vez dentro del servidor:

  • cd ruta — cambiar directorio
  • ls -la — listar archivos, incluidos ocultos
  • mkdir nombre — crear carpeta
  • rm nombre — eliminar archivo; usa rm -r para carpetas con cuidado
  • mv origen destino — mover o renombrar
  • cp origen destino — copiar

Cerrar sesión:

  • Escribe exit y pulsa Enter
  • Pulsa Control + D

Multiplexación de conexiones (ControlMaster) para acelerar varias conexiones al mismo host:

Ejemplo en ~/.ssh/config:

Host *
  ControlMaster auto
  ControlPath ~/.ssh/cm_%r@%h:%p
  ControlPersist 10m

8. Depuración y solución de problemas comunes

Cuando la conexión falla, añade -v para ver mensajes de depuración. Puedes usar -vvv para más detalle:

ssh -v usuario@servidor

Errores frecuentes y soluciones:

  • Permiso denegado: revisar usuario, permisos de ~/.ssh y authorized_keys. Los permisos deben ser 700 para ~/.ssh y 600 para authorized_keys.
  • Host key changed: la huella del host cambió. Si es intencionado, borra la entrada antigua en ~/.ssh/known_hosts antes de reconectar.
  • Tiempo de espera agotado: comprueba firewall, puerto y que el servicio SSH esté activo en el servidor.

Pruebas útiles:

  • ping direccion-ip
  • nc -vz servidor 22
  • ssh -p puerto usuario@servidor

9. Buenas prácticas de seguridad

  • Usa pares de claves ed25519 o RSA de 4096 bits; ed25519 ofrece mejor rendimiento y seguridad.
  • Protege la clave privada con una passphrase y usa ssh-agent para no escribirla cada vez.
  • Desactiva el acceso por contraseña en el servidor tras verificar que las claves funcionan: en /etc/ssh/sshd_config pone PasswordAuthentication no y reinicia el servicio.
  • Cambia el puerto por defecto y limita accesos por IP si es posible.
  • Activa ServerAliveInterval en el cliente para detectar conexiones caídas.
  • Usa fail2ban o reglas de firewall para bloquear intentos de fuerza bruta.
  • Revisa regularmente los logs de autenticación en el servidor.

Importante: desactivar la autenticación por contraseña sin haber probado claves adecuadamente puede bloquearte fuera del servidor.

10. Alternativas y herramientas complementarias

  • Mosh: reemplazo de SSH para conexiones móviles o inestables que mantiene la sesión ante cambios de red.
  • SFTP y clients gráficos (Cyberduck, FileZilla) para transferencias con interfaz.
  • Ansible, Fabric y Capistrano para automatizar despliegues a través de SSH.

11. Listas de verificación por rol

Desarrollador:

  • Generar clave ed25519
  • Copiar clave al servidor de desarrollo
  • Añadir alias en ~/.ssh/config
  • Usar rsync para despliegues locales rápidos

Administrador de sistemas:

  • Configurar autenticación por claves en todos los servidores
  • Desactivar acceso por contraseña tras validar claves
  • Implementar fail2ban y reglas de firewall
  • Auditar logs de SSH semanalmente

Usuario nuevo:

  • Abrir Terminal y probar ssh usuario@servidor desde red local
  • Generar y copiar clave pública
  • Aprender a usar scp para copiar archivos simples

12. Glosario breve

  • SSH: protocolo de shell seguro para acceso remoto.
  • Par de claves: par formado por clave pública y privada para autenticación.
  • ssh-agent: programa que guarda claves en memoria para evitar reintroducir passphrase.
  • known_hosts: archivo que guarda huellas de hosts conocidos.
  • authorized_keys: archivo en el servidor que contiene claves públicas autorizadas.

Preguntas frecuentes

Puedo hacer SSH a mi propio Mac desde otro dispositivo?

Sí. Activa Inicio de sesión remoto en Preferencias del Sistema > Compartir. Usa la dirección IP o el nombre del Mac con el comando ssh.

Cómo encuentro la dirección IP de mi Mac?

Preferencias del Sistema > Red. Selecciona la interfaz activa y lee la dirección IP. En Terminal usa ifconfig o ipconfig getifaddr en interfaces específicas.

Puedo usar SSH sin contraseña?

Sí. Configura autenticación por claves generando un par de claves y copiando la clave pública al servidor. Después podrás conectarte sin introducir contraseña.

SSH es seguro?

Sí. SSH cifra la comunicación y ofrece autenticación robusta. Mantén el software actualizado y sigue las buenas prácticas para reducir riesgos.

Puedo transferir archivos por SSH?

Sí. Usa scp para copias simples o rsync para sincronizaciones eficientes. También puedes usar SFTP para navegación remota de archivos.

Resumen final

SSH en macOS es una herramienta esencial para administradores y desarrolladores. Con este flujo cubres desde abrir Terminal hasta asegurar servidores con autenticación por claves, configurar aliases, transferir archivos y aplicar medidas de seguridad. Practica en entornos de prueba antes de aplicar cambios en producción y registra tus configuraciones en versiones controladas cuando sea posible.

Resumen de pasos prácticos:

  1. Abrir Terminal.
  2. Conectarse con ssh usuario@host.
  3. Generar y copiar clave pública para evitar contraseñas.
  4. Crear aliases en ~/.ssh/config.
  5. Usar scp o rsync para transferencias.
  6. Aplicar hardening en servidores.

Nota: si necesitas un playbook de automatización o un runbook de incidentes específico para tu infraestructura, puedo ayudarte a crearlo.

Autor
Edición

Materiales similares

QuickClick: automatiza Android con botones de volumen
Android

QuickClick: automatiza Android con botones de volumen

Enviar y recibir Hotmail en Thunderbird
Correo

Enviar y recibir Hotmail en Thunderbird

Ver y eliminar historial de YouTube
Privacidad

Ver y eliminar historial de YouTube

Solución rápida: Putlocker no funciona
Streaming

Solución rápida: Putlocker no funciona

SSH en Mac con Terminal: guía práctica
Tutorial

SSH en Mac con Terminal: guía práctica

Instalar IIS en Windows Server — Guía rápida
Windows Server

Instalar IIS en Windows Server — Guía rápida