Cómo habilitar SSH en Proxmox VE?

Proxmox VE ofrece una interfaz web, pero SSH proporciona control directo. Este artículo muestra cómo habilitar SSH, asegurarlo con autenticación por clave y reglas de firewall, configurar el acceso a máquinas virtuales y solucionar problemas. Aprenderás los pasos para reforzar y diagnosticar SSH en Proxmox.

download-icon
Descarga gratuita
para VM, SO, BD, archivos, NAS, etc.
alejandro

Updated by Alejandro on 2026/01/29

Tabla de contenidos
  • ¿Cuándo necesitas acceder por SSH a Proxmox?

  • ¿Cómo configurar SSH en Proxmox?

  • ¿Cómo acceder por SSH a una VM de Proxmox?

  • ¿Cómo configurar el acceso remoto SSH en Proxmox VE?

  • ¿Cómo solucionar problemas de conexión?

  • Solución de copia de seguridad Proxmox confiable y profesional

  • Preguntas frecuentes sobre cómo habilitar SSH en Proxmox

  • Conclusión

SSH permite la administración remota mediante CLI de los hosts y máquinas virtuales de Proxmox VE. Evita el uso de la interfaz web para automatización, creación de scripts y solución de problemas. Esta guía explica la configuración segura de SSH, acceso a máquinas virtuales, endurecimiento del sistema y diagnósticos. Cubrimos la configuración, modos de red, acceso basado en claves, reglas de firewall, configuración de clúster y soluciones comunes.

¿Cuándo necesitas acceder por SSH a Proxmox?

Necesitas SSH si la interfaz gráfica web no es accesible o es lenta. Puedes crear scripts para tareas masivas o ejecutar actualizaciones por lotes. Puedes depurar problemas de arranque mediante la consola serial (por ejemplo, usando qm terminal) cuando los agentes fallen. Podrías revisar registros directamente o ejecutar comandos de clúster sin hacer clic con el ratón. SSH también ayuda en el análisis posterior a un incidente cuando la GUI se bloquea.

¿Cómo configurar SSH en Proxmox?

1. Proxmox VE incluye OpenSSH por defecto. Verifica con systemctl status sshd. Por defecto, escucha en el puerto 22. Comienza actualizando los paquetes de Proxmox a la última versión estable. Confirma que SSH esté activo: ss -tuln | grep :22 muestra que el puerto está escuchando. Edita /etc/ssh/sshd_config para endurecer el acceso. Por ejemplo:

PermitRootLogin no
PasswordAuthentication no
AllowUsers admin_user
Port 2222

2. Recargar SSH: systemctl reload sshd. Validar: ssh -T admin_user@proxmox_ip -p 2222.

3. A continuación, asegure la cuenta root. Utilice PermitRootLogin no para obligar a usar usuarios no root. Cree un usuario administrador: adduser admin_user, luego otorgue permisos sudo mediante usermod -aG sudo admin_user. Coloque su clave pública en

/home/admin_user/.ssh/authorized_keys. Use ssh-keygen -t ed25519 en el lado del cliente y ssh-copy-id -i ~/.ssh/id_ed25519.pub admin_user@proxmox_ip -p 2222.

4. Configure reglas de firewall. Si utiliza UFW en un host de gestión separado o para pruebas, ejecute ufw allow 2222/tcp. Para el Firewall de Proxmox VE, agregue una regla:

pve-firewall add SSH --action ACCEPT --source <TRUSTED_IP> --iface <node>

La sintaxis puede variar si se utiliza el servicio de firewall proxmox basado en nftables. Confirme que la regla esté activa.

5. Considere cambiar el puerto predeterminado. Después de editar el Puerto 2222 en sshd_config, actualice los contextos de SELinux/AppArmor si están aplicados. Para SELinux: semanage port -a -t ssh_port_t -p tcp 2222. Vuelva a cargar las políticas. Ajuste el firewall para permitir el nuevo puerto.

6. Instale Fail2Ban para evitar ataques de fuerza bruta. En Proxmox basado en Debian:

apt update
apt install fail2ban

7. Crear una cárcel para SSH: en /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600

8. Reiniciar: systemctl restart fail2ban. Monitorear IPs bloqueadas con fail2ban-client status sshd.

9. Agregue autenticación de dos factores si lo desea. Instale libpam-google-authenticator:

apt install libpam-google-authenticator

10. Ejecute google-authenticator para cada usuario. En /etc/pam.d/sshd, agregue:

auth required pam_google_authenticator.so

11. Y en sshd_config, establezca ChallengeResponseAuthentication yes. Recargue SSH. Pruebe el inicio de sesión con clave más TOTP.

12. Audite regularmente la configuración de SSH:

sshd -T | grep -i permitroot
grep -i allowusers /etc/ssh/sshd_config

Asegúrese de que la configuración coincida con la política. Utilice una herramienta de gestión de configuración para garantizar la coherencia entre los nodos.

¿Cómo acceder por SSH a una VM de Proxmox?

1. Asegúrese de que la máquina virtual tenga un servidor SSH. La mayoría de las plantillas de Linux incluyen OpenSSH. Si no lo tiene, instálelo: apt install openssh-server o equivalente. Elija un modo de red: bridged, routed o NAT con reenvío de puertos. En modo bridged, la VM obtiene una IP en la LAN a través de vmbr0. En modo routed, asigne una subred enrutada o use VLAN. En modo NAT, configure el reenvío de puertos en el host:

iptables -t nat -A PREROUTING -p tcp --dport 2223 -j DNAT --to-destination <VM_IP>:22

2. Prueba de conectividad: desde el host, ssh root@<VM_IP> o mediante el puerto reenviado: ssh user@host_ip -p 2223.

3. Verifique el cortafuegos de la máquina virtual. Si el cortafuegos de Proxmox VE está habilitado para esa VM: desactívelo temporalmente con qm set <VMID> --firewall 0 o agregue reglas para permitir SSH. Dentro de la VM, verifique el estado de ufw o iptables -L. Asegúrese de que el puerto 22 esté abierto.

4. Utilice el agente QEMU para obtener información interna: si está instalado, ejecute:

qm guest exec <VMID> -- ip addr

Esto muestra la IP de la VM sin necesidad de iniciar sesión. Asegúrese de que el agente esté en ejecución en el invitado.

5. Para el inicio de sesión root, considere desactivar el acceso directo a root en la máquina virtual. Utilice un usuario sin privilegios elevados con sudo. Agregue claves SSH de forma similar. Use ssh-copy-id usuario@ip_vm. Si la máquina virtual está detrás de NAT, asegúrese de que el reenvío de puertos funcione en el host y de que el cortafuegos de red lo permita. Si utiliza modo enrutado, asegúrese de contar con el enrutamiento correcto y reglas de cortafuegos adecuadas.

6. Para depurar errores de SSH: desde el host cliente, ejecute nc -zv proxmox_ip 2223 o telnet proxmox_ip 2223. En la máquina virtual: verifique systemctl status sshd, revise /var/log/auth.log o journalctl -u sshd. Ajuste el firewall o la configuración de red según corresponda.

¿Cómo configurar el acceso remoto SSH en Proxmox VE?

1. Primero, asegúrese de que el firewall del host permita el puerto SSH. En el Firewall de Proxmox VE: agregue una regla ACCEPT para SSH desde subredes o IPs de confianza. Por ejemplo:

pve-firewall add SSH --action ACCEPT --source 203.0.113.0/24

2. Aplicar tanto en IPv4 como en IPv6 si se utiliza. Para firewalls externos, permitir el puerto elegido solo desde direcciones conocidas.

3. Limitar el acceso SSH: utilizar AllowUsers admin_user@203.0.113.*  o similar en sshd_config. Esto restringe las fuentes de inicio de sesión. Utilizar únicamente autenticación basada en claves: PasswordAuthentication no. Recargar SSH posteriormente.

4. Cambie el puerto predeterminado. Edite Puerto 2222. Recargue SSH: systemctl reload sshd. Actualice las reglas del cortafuegos para permitir el nuevo puerto. Para contextos SELinux, use semanage port -a -t ssh_port_t -p tcp 2222 si SELinux está activado. Para AppArmor, asegúrese de que no haya perfiles en conflicto.

5. Para los nodos del clúster, establezca claves SSH sin contraseña. En cada nodo:

ssh-keygen -t ed25519
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@node2_ip -p 2222

6. Repita para que cada nodo pueda acceder por SSH a los demás sin contraseña. Verifique con ssh node2 pvecm status. Esto facilita la migración en vivo, la replicación y los scripts.

7. Utilice hosts de salto si es necesario: desde la estación de trabajo de administrador:

ssh -J admin_user@bastion_ip admin_user@proxmox_ip -p 2222

Esto garantiza una exposición directa. Mantenga el bastión endurecido y monitoreado.

8. Habilite el registro y la supervisión. Revise /var/log/auth.log para eventos SSH. Integre con SIEM o recolectores de registros. Rote los registros y configure alertas para fallos repetidos. Use Fail2Ban para bloquear a los atacantes. Audite periódicamente /etc/ssh/sshd_config a través de sshd -T. Automatice las verificaciones en las canalizaciones CI/CD.

¿Cómo solucionar problemas de conexión?

1. Si el puerto SSH parece cerrado: prueba con ss -tuln | grep 2222 en el host. Desde remoto, usa nc -zv proxmox_ip 2222. Si hay tiempo de espera agotado, revisa el cortafuegos. Si la conexión es rechazada, asegúrate de que sshd esté activo: systemctl status sshd. Revisa denegaciones de SELinux/AppArmor en los registros de auditoría.

2. Si el host no es accesible mediante SSH pero la interfaz gráfica funciona, revise la interfaz de red y las rutas: ip addr, ip route. Si la interfaz gráfica no es accesible pero SSH funciona, verifique systemctl status pveproxy y ss -tuln | grep 8006. Reinicie los servicios de la interfaz gráfica: systemctl restart pveproxy pvedaemon.

3. Si el inicio de sesión basado en claves falla, active el cliente SSH detallado: ssh -vvv admin_user@proxmox_ip -p 2222. Revise la coincidencia incorrecta de claves o permisos. Asegúrese de que ~/.ssh y authorized_keys tengan los permisos correctos (700/600).

4. Si los comandos del clúster se bloquean, verifique la conectividad SSH entre los nodos. Utilice ssh node1 pvecm status y ssh node2 hostname. Revise las claves de host; reemplace las entradas obsoletas en ~/.ssh/known_hosts cuando cambien las IPs.

Solución de copia de seguridad Proxmox confiable y profesional

Mientras que SSH protege el acceso, también necesitas un plan de copia de seguridad confiable. Vinchin Backup & Recovery es una solución empresarial para Proxmox. Admite copias de seguridad completas e incrementales de máquinas virtuales. Utiliza desduplicación y compresión para ahorrar almacenamiento. Puedes programar copias de seguridad y establecer políticas de retención. Se integra perfectamente con Proxmox. Puedes crear tareas de copia de seguridad para máquinas virtuales sin instalar ningún agente. Vinchin verifica las copias de seguridad y ofrece restauraciones rápidas. También admite replicación remota y cifrado para la seguridad de los datos, garantizando siempre la continuidad del negocio y optimizando la recuperación. Además, facilita la migración V2V fluida entre plataformas virtuales compatibles, asegurando flexibilidad y facilidad en la transferencia de datos.

La consola web de Vinchin es intuitiva. Para hacer una copia de seguridad de una VM de Proxmox:

1. Primero, seleccione la máquina virtual Proxmox que desea respaldar.

Seleccione la máquina virtual Proxmox que desea respaldar

2. A continuación, elija el almacenamiento de copia de seguridad en su entorno.

Elija almacenamiento de copia de seguridad

3. Luego configure estrategias de copia de seguridad.

Configurar estrategias de copia de seguridad

4. Finalmente, envíe el trabajo.

Enviar el trabajo

Vinchin atiende a clientes en todo el mundo y recibe calificaciones altas. Disfrute de una prueba gratuita de 60 días con todas las funciones para ver cómo se adapta a su flujo de trabajo. Descargue el instalador para una implementación sencilla y comience a proteger sus máquinas virtuales hoy mismo.

Preguntas frecuentes sobre cómo habilitar SSH en Proxmox

P1: ¿Cómo puedo probar la conectividad SSH cuando la interfaz gráfica de Proxmox está inactiva?

Utilice ssh admin_user@proxmox_ip -p 2222 desde un equipo de confianza; verifique que el puerto esté abierto y que el servicio SSH esté activo.

P2: ¿Cómo puedo endurecer SSH en Proxmox?

Desactive el inicio de sesión como root (PermitRootLogin no), exija autenticación basada en claves (PasswordAuthentication no), restrinja las IPs de origen (firewall/AllowUsers), cambie el puerto (Port 2222) e instale Fail2Ban.

P3: ¿Cómo accedo mediante SSH a una VM detrás de NAT?

Configure el reenvío de puertos del host o use una VPN: iptables -t nat -A PREROUTING -p tcp --dport 2223 -j DNAT --to-destination <VM_IP>:22, luego ejecute ssh user@host_ip -p 2223.

Conclusión

SSH es fundamental para una gestión robusta de Proxmox. Protéjalo mediante autenticación basada en claves, reglas de firewall, privilegio mínimo y auditorías regulares. Integre la configuración de SSH en flujos de trabajo de automatización y estrategias de copia de seguridad para garantizar una recuperación rápida. Mantenga configuraciones consistentes entre nodos y supervise los registros de acceso. Vinchin complementa las operaciones de SSH al ofrecer protección empresarial para máquinas virtuales en entornos diversos. 

Compartir en:

Categories: VM Tips