Ir directamente al contenido

Ajustes de cookies

Elija por tipo qué cookies permite. Puede cambiar su elección en cualquier momento en Ajustes de cookies, al pie de cada página. Declaración de privacidad

Necesarias

Siempre activadas

Necesarias para iniciar sesión, conservar su carrito y recordar sus preferencias. Siempre están activadas.

¿Qué cookies?
  • weboke_sessie, weboke_klant, weboke_remember: su sesión y mantener la sesión iniciada
  • weboke_basket: su carrito
  • wkBtwIncl: mostrar los precios con o sin IVA
  • wok_cookies: su elección de cookies, 12 meses

Mide qué anuncio lleva a una visita o a un pedido, para no pagar por anuncios que no sirven de nada.

¿Qué cookies?
  • Google Ads a través de Google Tag Manager (_gcl_au, _gcl_aw), hasta 90 días
  • OpenAI Ads, anuncios en ChatGPT
  • wok_aff: a través de qué socio llegó a nosotros (programa de afiliados), 60 días

4,6

País e idioma

Cada país tiene su propio sitio, con los precios y el IVA de ese país.

Ver

Módulo 1 · 1.3

El primer inicio de sesión por SSH

Módulo 1: Su primer servidor · Tiempo de lectura: 10 minutos

Objetivo de aprendizaje: Después de esta lección podrá iniciar sesión por primera vez en su servidor con SSH, comprobar la huella digital del servidor antes de confiar en él y sabrá qué hacer ante el aviso de que la identidad del servidor ha cambiado.

Conceptos clave: SSH, cliente y servidor, puerto 22, banner de versión, host key (clave de host), huella digital (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell y Terminal

Qué es SSH

SSH (Secure Shell) es la conexión cifrada con la que se administra un servidor a distancia. Usted escribe en su propio ordenador y los comandos se ejecutan en el servidor. Todo lo que pasa por la línea, también su contraseña, va cifrado.

Hay dos lados:

  • el cliente SSH en su propio ordenador: el programa ssh. En macOS y Linux viene incluido de serie. En Windows 10 (a partir de la versión 1809) y Windows 11, el cliente OpenSSH forma parte de Windows; se usa en PowerShell o en Windows Terminal. Si falta, puede añadirlo en Configuración, Características opcionales, "Cliente OpenSSH". Los programas con ventanas como PuTTY también funcionan, pero en este curso usamos ssh.
  • el servidor SSH en el VPS: el programa sshd (de OpenSSH). Por defecto escucha en el puerto 22.

Iniciar sesión

Se inicia sesión con un nombre de usuario y la dirección del servidor:

PS C:\Users\anna> ssh root@192.0.2.10

O con un nombre, si lo ha configurado en el DNS (lección 7.1):

anna@laptop:~$ ssh root@web1.example.com

La primera vez verá algo así:

The authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Este es el momento más importante de esta lección. No escriba yes a ciegas.

La host key y la huella digital

Cada servidor SSH tiene una o varias host keys (claves de host): pares de claves con los que el servidor demuestra quién es. Las partes públicas están en el servidor en /etc/ssh/, por ejemplo /etc/ssh/ssh_host_ed25519_key.pub. En cada conexión, el servidor demuestra que tiene la parte secreta.

Una huella digital es un resumen breve (un hash) de esa clave pública. OpenSSH muestra por defecto la forma SHA256: SHA256: seguido de 43 caracteres.

La pregunta "Are you sure you want to continue connecting?" significa: su ordenador todavía no conoce este servidor. ¿Quién garantiza que está hablando con su VPS y no con alguien que intercepta el tráfico? Nadie, a menos que usted compare la huella digital con una fuente fiable.

Esa fuente es la consola de su proveedor (lección 1.2). Allí no habla con el servidor a través de la red. Inicie sesión en la consola y consulte la huella digital:

root@web1:~# ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs root@web1 (ED25519)

Si coincide exactamente con lo que muestra el cliente, escriba yes. También puede pegar la propia huella digital en lugar de yes; así ssh la compara por usted. Si no coincide, deténgase y averigüe por qué (dirección IP equivocada, servidor reinstalado o algo más grave).

Fíjese en el tipo: el cliente indica el tipo (ED25519, ECDSA o RSA). Compare la huella digital del mismo tipo. Muchas imágenes también muestran las huellas digitales en la consola durante el primer arranque (cloud-init), entre líneas como BEGIN SSH HOST KEY FINGERPRINTS.

known_hosts y trust on first use

Si escribe yes, verá:

Warning: Permanently added '192.0.2.10' (ED25519) to the list of known hosts.

El cliente guarda la clave en ~/.ssh/known_hosts (en Windows C:\Users\<naam>\.ssh\known_hosts). A partir de ese momento la compara automáticamente en cada conexión. Este modelo se llama trust on first use (TOFU, confianza en el primer uso): la primera vez debe comprobarlo usted mismo y después el cliente se encarga de vigilarlo.

Por eso esa primera comprobación es tan importante: si confía en una clave equivocada, el cliente ya no le avisará nunca más.

Si usted mismo trabaja en un ordenador con Debian o Ubuntu, los nombres en known_hosts se guardan por defecto con hash (HashKnownHosts yes en /etc/ssh/ssh_config), de modo que allí no verá direcciones IP legibles. En Windows y macOS aparecen de forma legible. La búsqueda funciona en todos los sistemas con:

anna@laptop:~$ ssh-keygen -F 192.0.2.10
# Host 192.0.2.10 found: line 3
|1|kP9...= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...

"REMOTE HOST IDENTIFICATION HAS CHANGED"

A veces verá este aviso:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
...
Host key verification failed.

El servidor muestra una clave distinta de la que conoce su cliente. ssh se niega entonces a conectar. Hay dos tipos de causas:

NormalSospechoso
Ha reinstalado el VPS (nuevas host keys)No ha cambiado nada y aun así la clave es distinta
La dirección IP se ha asignado a otro servidorEstá conectado a una red wifi desconocida
Ha sustituido las host keys a propósitoLa huella digital de la consola no coincide con lo que ve ahora el cliente

Si hay una explicación normal, vuelva a comprobar la huella digital en la consola y solo después elimine la línea antigua:

anna@laptop:~$ ssh-keygen -R 192.0.2.10
# Host 192.0.2.10 found: line 3
/home/anna/.ssh/known_hosts updated.

En la siguiente conexión volverá a recibir la pregunta de la primera vez, y volverá a comprobarla. No ponga nunca StrictHostKeyChecking no en su configuración para quitarse el aviso de encima: así desactiva precisamente la protección que importa.

El banner de versión

Antes de que se cifre nada, el cliente y el servidor se envían una línea de texto: el banner de versión. Es visible para cualquiera en internet. Puede verlo con ssh -v:

anna@laptop:~$ ssh -v root@192.0.2.10 2>&1 | grep "remote software"
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.6p1 Ubuntu-3ubuntu13.5

Aquí el servidor indica qué protocolo (2.0) y qué software utiliza. Debian y Ubuntu añaden detrás la versión del paquete. No es un secreto que deba ocultar: los atacantes lo prueban todo de todos modos, y usted se protege con actualizaciones (módulo 4), no con otro banner. Eso sí, resulta útil: con el banner puede ver desde fuera si su servidor ejecuta realmente la versión actualizada.

En AlmaLinux y Rocky Linux

El inicio de sesión y las huellas digitales funcionan igual. El servicio se llama sshd en lugar de ssh (systemctl status sshd). El banner no incluye el nombre de la distribución, solo la versión de OpenSSH.

Resumen

  • SSH es la conexión cifrada con su servidor; ssh es el cliente y sshd el servidor en el puerto 22.
  • En la primera conexión, el cliente muestra la huella digital de la host key. Compárela con la salida de ssh-keygen -lf en la consola antes de escribir yes.
  • El cliente guarda la clave en ~/.ssh/known_hosts y a partir de entonces avisa por sí mismo (trust on first use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" es normal después de una reinstalación; si no, es sospechoso. Elimine una línea antigua solo después de comprobarlo, con ssh-keygen -R.
  • El banner de versión es público; la protección viene de las actualizaciones, no de ocultarlo.

Cuestionario

1. ¿Con qué compara la huella digital que muestra ssh en la primera conexión?



2. ¿Para qué sirve ~/.ssh/known_hosts?



3. Ha reinstalado su VPS y recibe "REMOTE HOST IDENTIFICATION HAS CHANGED". ¿Cuál es el orden correcto?



4. ¿Por qué es tan importante la primera comprobación con trust on first use?



5. ¿Qué muestra el banner de versión de un servidor SSH?



Ejercicio

Ejercicio Z1.3: Banner SSH y huella digital de su servidor. Introduzca la dirección de su servidor, la versión del software que aparece en el banner (como OpenSSH_9.6p1) y la huella digital ED25519 que consultó en la consola con ssh-keygen -lf. El programa establece una única conexión con su puerto SSH, lee el banner y la host key, y los compara. No inicia sesión.

Ejercicio Z1.3: Banner SSH y huella digital de su servidor

No iniciamos sesión ni probamos ninguna contraseña o clave. Primero debe demostrar que el servidor es suyo: haga clic en "Mostrar mi código" y coloque un archivo /.well-known/weboke-cursus-<code>.txt que contenga solo ese código en el servidor web de su nombre de host. Lo descargamos directamente de cada dirección IP que comprobamos (IPv4 e IPv6 por separado); un registro TXT no sirve aquí. La comprobación se realiza desde heavy.webawere.nl (185.158.167.16 y 2a07:ae80:100:0:185:158:167:16), no desde nuestro servidor web. Solo para alumnos registrados; como máximo 6 comprobaciones por hora y servidor. En este ejercicio establecemos una sola conexión y leemos únicamente el banner y la clave del servidor; no aparecerá ningún intento de inicio de sesión en su registro.





No guardamos lo que escriba ni lo que encontremos. Su navegador recuerda sus respuestas y si ha superado el ejercicio. Si ha iniciado sesión, en Mis cursos solo guardamos que el ejercicio estaba (casi) correcto; allí también puede eliminarlo.

Para saber más

Un momento…

Configure sus dominios

Configure para cada dominio los servidores de nombres, la vinculación a su hosting y quién será el titular.

Cargando sus dominios…