Insights de dominios

SSH para principiantes: conectarse al VPS con seguridad, usar claves y transferir archivos

Aprenda SSH desde el principio: conéctese a un VPS, comprenda las claves del host, cree una clave SSH, copie archivos, use un archivo de configuración y solucione errores de conexión comunes.

VPS y Linux
SSH para principiantes: conectarse al VPS con seguridad, usar claves y transferir archivos

Compra su primer VPS.

Unos minutos más tarde, el proveedor le envía una dirección IP e información de inicio de sesión.

No hay escritorio.

No es posible iniciar sesión en cPanel a menos que haya instalado un panel de control.

Sólo hay una dirección como:

203.0.113.25

y una palabra que quizás hayas visto antes:

SSH

Para un principiante, esto puede hacer que un VPS parezca inacabado.

No lo es.

SSH es una de las principales formas en que los administradores controlan de forma segura los servidores Linux en una red. A través de una conexión de terminal puede instalar software, editar la configuración, leer registros, mover archivos, reiniciar servicios y administrar un servidor web completo.

El comando en sí es simple:

ssh username@server

Lo importante es entender lo que sucede a su alrededor.

Esta guía comienza desde la primera conexión y avanza hacia un flujo de trabajo diario seguro.

Nuestros planes VPS son un punto de partida cuando su proyecto necesita un entorno de servidor propio. Si prefiere administrar un sitio sin mantener servicios Linux, compare el hosting compartido y lea nuestra introducción a VPS antes de elegir.

Qué hace realmente SSH

SSH significa Secure Shell.

Crea una conexión cifrada entre un cliente SSH en su computadora y un servidor SSH que se ejecuta en el VPS.

El proyecto OpenSSH proporciona herramientas comunes que incluyen:

  • ssh para inicio de sesión remoto;
  • sshd para el demonio del servidor;
  • ssh-keygen para creación de claves;
  • ssh-agent para gestionar claves;
  • scp para copiar archivos;
  • sftp para transferencias de archivos.

Cuando escribe comandos en una sesión SSH, se ejecutan en el servidor remoto, no en su computadora portátil.

Esa distinción importa.

Este comando:

rm file.txt

dentro de una sesión SSH elimina file.txt del directorio actual en el VPS.

Linux asume que lo que escribes es en serio.

Antes de conectarse: recopile cuatro detalles

Normalmente necesita:

  1. dirección IP del servidor o nombre de host;
  2. nombre de usuario SSH;
  3. método de autenticación;
  4. Puerto SSH.

Un proveedor puede brindarle:

IP: 203.0.113.25
Username: root
Password: temporary-password
Port: 22

El puerto 22 es el puerto SSH estándar, pero un proveedor o administrador puede configurar otro.

Si su proveedor le proporciona un puerto diferente, utilícelo.

su primera conexión SSH

En Linux, macOS y sistemas Windows actuales con un cliente SSH disponible, abra una terminal.

Ejecutar:

ssh [email protected]

Reemplace la dirección de ejemplo.

Si el servidor SSH usa otro puerto:

ssh -p 2222 [email protected]

En la primera conexión, es posible que vea un mensaje que le preguntará si confía en la clave de host del servidor.

No trate esta advertencia como si no tuviera sentido.

SSH le pide que verifique la identidad del servidor al que se está conectando.

La clave privada permanece en el cliente; la pública autoriza el acceso y la clave del host identifica el servidor.
La clave privada permanece en el cliente; la pública autoriza el acceso y la clave del host identifica el servidor.

Qué significa la advertencia de la clave de host

La primera vez que su computadora se conecta a un nuevo servidor SSH, todavía no tiene una clave de host guardada para ese servidor.

Es posible que vea algo como:

The authenticity of host '203.0.113.25' can't be established.

El mensaje incluye una huella digital.

Lo ideal es comparar esa huella digital con la información del proveedor de VPS o de la consola del servidor cuando esté disponible.

Después de aceptar una clave de host legítima, su cliente SSH la almacena en:

~/.ssh/known_hosts

Las conexiones futuras pueden detectar si el servidor presenta una clave diferente.

Esa protección es importante porque una clave de host modificada puede indicar:

  • se reinstaló el VPS;
  • la IP ahora apunta a otra máquina;
  • Se regeneraron las claves de host SSH;
  • existe un problema de red o de identidad.

No elimine automáticamente la advertencia y vuelva a conectarse.

Primero comprenda por qué cambió la clave.

Después de iniciar sesión: confirma dónde estás

Una vez conectado, ejecute:

whoami
hostname
pwd

whoami muestra el usuario actual.

hostname muestra el nombre del servidor.

pwd muestra el directorio actual.

Luego identifique el sistema operativo:

cat /etc/os-release

Esto es importante porque los comandos de los paquetes y los nombres de los servicios pueden diferir entre Ubuntu, Debian, AlmaLinux, Rocky Linux y otras distribuciones.

Un tutorial escrito para Ubuntu no debería copiarse automáticamente en AlmaLinux.

Actualizar un VPS de Ubuntu

Para sistemas basados en Ubuntu o Debian:

sudo apt update

Revisar las actualizaciones disponibles:

apt list --upgradable

Luego, según su política de mantenimiento:

sudo apt upgrade

Una imagen VPS nueva aún puede tener paquetes que recibieron actualizaciones después de que se creó la imagen.

Mantenga el sistema mantenido.

No uses root para todas las tareas diarias

Algunos proveedores de VPS inicialmente brindan acceso directo a root.

Root puede cambiar o eliminar casi cualquier cosa en el sistema.

Esto es útil para la administración y peligroso para el trabajo rutinario.

En Ubuntu, crea un usuario normal:

adduser marco

Reemplace marco con su nombre de usuario deseado.

Otorgue al usuario privilegios sudo:

usermod -aG sudo marco

Ahora abra una segunda terminal y pruebe:

ssh [email protected]

Luego verifica sudo:

sudo whoami

Resultado esperado:

root

No cierre su sesión raíz de trabajo hasta que sepa que la nueva cuenta funciona.

Ese simple hábito puede evitar que pierda el acceso.

Las contraseñas funcionan, pero las claves SSH son mejores para la administración

SSH puede autenticarte de varias maneras.

La autenticación de contraseña solicita una contraseña.

La autenticación de clave pública utiliza un par de claves criptográficas.

Mantiene la clave privada en su dispositivo.

El servidor almacena la clave pública correspondiente.

La clave privada nunca debe cargarse en el VPS ni enviarse a otra persona.

Un par de claves permite al servidor verificar que su cliente tenga la clave privada correcta sin transmitir esa clave privada a través de la red.

Para la administración normal de VPS, las claves suelen ser la mejor opción.

Crear una clave SSH

En su computadora local, no dentro del VPS, ejecute:

ssh-keygen -t ed25519

Opcionalmente puede agregar un comentario:

ssh-keygen -t ed25519 -C "my-vps-admin-key"

El comando pregunta dónde guardar la clave.

Un valor predeterminado común es:

~/.ssh/id_ed25519

También solicita una frase de contraseña.

Una frase de contraseña protege el archivo de clave privada si alguien obtiene una copia del mismo.

Para una clave administrativa, utilizar una frase de contraseña segura es una opción predeterminada sensata.

El comando crea dos archivos.

Clave privada:

~/.ssh/id_ed25519

Clave pública:

~/.ssh/id_ed25519.pub

El archivo .pub es el que puede colocar en el servidor.

No comparta el archivo privado.

Copie su clave pública al VPS

Si ssh-copy-id está disponible:

ssh-copy-id [email protected]

Se autentica una vez más utilizando el método actual.

La clave pública se agrega a la del usuario remoto:

~/.ssh/authorized_keys

Ahora prueba una nueva conexión:

ssh [email protected]

Si su clave privada tiene una frase de contraseña, su cliente puede solicitarla.

El servidor ya no debería requerir la contraseña de la cuenta para la autenticación basada en claves.

Pruebe esto en una segunda terminal antes de cambiar la configuración de autenticación SSH.

Instalación manual de clave pública

Si ssh-copy-id no está disponible, muestre la clave pública en su máquina local:

cat ~/.ssh/id_ed25519.pub

Copie la línea única completa.

En el VPS como usuario previsto:

mkdir -p ~/.ssh
chmod 700 ~/.ssh

Editar:

nano ~/.ssh/authorized_keys

Pegue la clave pública como una línea.

Entonces:

chmod 600 ~/.ssh/authorized_keys

Asegúrese de que los archivos pertenezcan al usuario previsto.

La propiedad o los permisos incorrectos pueden provocar que falle la autenticación de claves.

Si se conecta mediante un nombre en lugar de una IP, nuestra consulta DNS permite revisar su registro A o AAAA. Puede registrar y administrar el dominio mediante nuestro catálogo de dominios. El DNS ayuda a llegar al servidor; la verificación de la huella de la clave del host SSH permite comprobar su identidad.

No deshabilites el inicio de sesión con contraseña demasiado pronto

Muchas guías de seguridad recomiendan inmediatamente a los principiantes que editen:

/etc/ssh/sshd_config

y deshabilite la autenticación de contraseña o el inicio de sesión de root.

Estos pueden ser controles de seguridad apropiados.

Pero hay un orden importante:

  1. crear la cuenta de administrador normal;
  2. instale la clave SSH;
  3. abrir una segunda terminal;
  4. verificar que el inicio de sesión con clave funcione;
  5. verificar sudo funciona;
  6. Sólo entonces considere reforzar la autenticación SSH.

De lo contrario, un error tipográfico puede convertir una mejora de seguridad en un bloqueo.

Si cambia la configuración del servidor SSH, mantenga abierta su sesión de trabajo existente hasta que se haya probado la nueva.

Consulta el servicio SSH

En Ubuntu, el servicio del servidor OpenSSH se llama comúnmente:

ssh

Comprobar:

sudo systemctl status ssh

Leer registros recientes:

sudo journalctl -u ssh --since "30 minutes ago"

Siga los registros en vivo:

sudo journalctl -u ssh -f

Esto es útil cuando falla una nueva clave o inicio de sesión.

Para obtener más técnicas de lectura de registros, consulte Su sitio web no funciona: cómo leer los registros de VPS antes de reiniciar todo.

Copiar un archivo al VPS con scp

Supongamos que su computadora local tiene:

backup.sql

Cópielo a su directorio personal en el VPS:

scp backup.sql [email protected]:/home/marco/

Copie un archivo del VPS a su computadora:

scp [email protected]:/home/marco/report.txt .

El último punto significa el directorio local actual.

Si SSH usa un puerto personalizado, scp usa -P en mayúsculas:

scp -P 2222 backup.sql [email protected]:/home/marco/

Note la diferencia:

ssh -p
scp -P

Las opciones de línea de comandos de Linux distinguen entre mayúsculas y minúsculas.

Utilice SFTP para transferencias interactivas

OpenSSH también proporciona SFTP.

Conectar:

sftp [email protected]

Dentro de SFTP:

ls
pwd
put localfile.txt
get remotefile.txt
exit

SFTP se ejecuta sobre SSH.

No es lo mismo que el antiguo FTP sin cifrar.

Muchas aplicaciones gráficas de transferencia de archivos también pueden usar SFTP si prefiere una interfaz visual.

Facilite las conexiones SSH repetidas

Escribir la IP, el nombre de usuario y el puerto personalizado cada vez se vuelve molesto.

Cree un archivo de configuración SSH local:

~/.ssh/config

Ejemplo:

Host myvps
    HostName 203.0.113.25
    User marco
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Ahora conéctate con:

ssh myvps

Y copie un archivo con:

scp backup.sql myvps:/home/marco/

Esta es una de las mejoras en la calidad de vida más sencillas para cualquiera que administre varios servidores.

Error común: se agotó el tiempo de conexión

Ejemplo:

ssh: connect to host 203.0.113.25 port 22: Connection timed out

Las posibles causas incluyen:

  • IP incorrecta;
  • el servidor está fuera de línea;
  • el firewall bloquea el puerto;
  • el grupo de seguridad del proveedor bloquea el puerto;
  • estás utilizando el puerto SSH incorrecto;
  • problema de enrutamiento de la red.

Un tiempo de espera generalmente significa que su cliente no completó una conexión al servicio SSH.

Consulte la consola del proveedor de VPS si está disponible.

Si otro método de acceso funciona, verifique:

sudo systemctl status ssh

y reglas de firewall.

Error común: conexión rechazada

Ejemplo:

ssh: connect to host 203.0.113.25 port 22: Connection refused

Esto a menudo significa que la red llegó al servidor, pero nada aceptó la conexión en ese puerto.

Posibles causas:

  • El servicio SSH se detuvo;
  • SSH escucha en otro puerto;
  • la configuración impidió el inicio;
  • El comportamiento del firewall es rechazar en lugar de eliminar.

Verifique desde la consola del servidor:

sudo systemctl status ssh

Entonces:

sudo journalctl -u ssh --since "30 minutes ago"

Error común: permiso denegado

puede ver:

Permission denied (publickey)

o:

Permission denied (publickey,password)

Posibles causas:

  • nombre de usuario incorrecto;
  • clave privada incorrecta;
  • falta la clave pública de authorized_keys;
  • los permisos de archivos son incorrectos;
  • El servidor no permite el método de autenticación intentado.

Utilice salida de cliente detallada:

ssh -v [email protected]

Para más detalles:

ssh -vv [email protected]

El modo detallado muestra qué claves se están intentando y dónde falla la autenticación.

No publique el resultado detallado completo sin revisarlo en busca de información confidencial.

Las transferencias de archivos también forman parte de una estrategia de copias de seguridad y recuperación. Mantenga copias protegidas fuera del VPS, pruebe la restauración y consulte nuestra guía de migración al trasladar un sitio activo.

Advertencia común: LA IDENTIFICACIÓN DEL HOST REMOTO HA CAMBIADO

Esta advertencia merece atención.

Si reinstaló deliberadamente el VPS y confirmó la nueva huella digital del host a través de una fuente confiable, es posible que deba eliminar la antigua clave guardada.

Por ejemplo:

ssh-keygen -R 203.0.113.25

Luego vuelva a conectarse y verifique la nueva huella digital.

Pero no utilice ssh-keygen -R simplemente para silenciar una advertencia que no comprende.

La advertencia existe para protegerlo de conectarse a una máquina cuya identidad cambió inesperadamente.

Seguridad del cortafuegos

Los sistemas Ubuntu pueden usar UFW.

Comprobar:

sudo ufw status

Antes de habilitar un firewall en un VPS remoto, asegúrese de que SSH esté permitido.

Una regla común es:

sudo ufw allow OpenSSH

Luego verifique que la regla exista antes de habilitar UFW.

Si utiliza un puerto SSH personalizado, la regla debe coincidir con el puerto real.

Los proveedores de la nube también pueden tener un firewall externo o un grupo de seguridad.

Una regla UFW correcta no puede ayudar si el firewall de red del proveedor bloquea la conexión antes de que llegue a su VPS.

Un flujo de trabajo seguro para principiantes

Cuando recibe un nuevo VPS:

  1. conectarse utilizando el método inicial del proveedor;
  2. identificar el sistema operativo;
  3. instalar actualizaciones normales;
  4. crear un administrador no root;
  5. generar una clave SSH localmente;
  6. instalar la clave pública para el nuevo usuario;
  7. verificar la clave de inicio de sesión en una segunda terminal;
  8. verificar sudo;
  9. revisar el acceso al firewall;
  10. sólo entonces ajuste la autenticación SSH;
  11. mantener disponible la información de acceso a la consola de recuperación;
  12. documentar el servidor y la propiedad de la clave.

No realice cinco cambios de seguridad a la vez.

Haz un cambio.

Pruébalo.

Entonces continúa.

Eso es más lento durante cinco minutos y más rápido durante los próximos cinco años.

Lo que SSH no reemplaza

SSH le brinda administración remota segura.

No reemplaza:

  • actualizaciones del sistema operativo;
  • un cortafuegos;
  • copias de seguridad;
  • seguimiento de servicios;
  • seguridad de aplicaciones;
  • protección contra malware;
  • sólida gestión de cuentas.

Un servidor con una configuración SSH segura aún puede ejecutar software vulnerable.

La seguridad es una cadena.

SSH protege un enlace importante.

Preguntas frecuentes

¿Qué es SSH?

SSH es Secure Shell, un protocolo y un conjunto de herramientas que se utilizan para conectarse y administrar de forma segura sistemas remotos como servidores VPS Linux.

¿Qué puerto utiliza SSH?

El puerto estándar es TCP 22, aunque los administradores pueden configurar otro puerto.

¿Cómo me conecto a mi VPS?

Utilice: ssh username@server-ip Para un puerto personalizado: ssh -p PORT username@server-ip

¿Debo iniciar sesión como root?

El acceso inicial al VPS puede usar root, pero la administración de rutina es más segura con un usuario normal que puede elevar comandos específicos usando sudo.

¿Qué es una clave SSH?

Es un par de claves criptográficas. La clave privada permanece en el cliente, mientras que la clave pública correspondiente se puede almacenar en el servidor para la autenticación.

¿Puedo enviarme por correo electrónico mi clave SSH privada?

Esa es una mala práctica. Proteja la clave privada como secreto de autenticación y almacene copias de seguridad de forma segura.

¿Qué es authorized_keys?

Es un archivo en el directorio .ssh de un usuario que contiene claves públicas autorizadas para iniciar sesión en esa cuenta.

¿Qué debo hacer si cambia la clave del host del servidor?

Verifique por qué cambió. Si el VPS se reinstaló intencionalmente, confirme la nueva huella digital y luego actualice la entrada de clave de host guardada. No ignore los cambios inesperados.

¿Cuál es la diferencia entre SCP y SFTP?

Ambos pueden transferir archivos usando SSH. scp es conveniente para operaciones de copia de línea de comandos, mientras que SFTP proporciona una sesión de transferencia de archivos interactiva y también es compatible con muchos clientes gráficos.