Capítulo 1. Uso de comunicaciones seguras entre dos sistemas con OpenSSH
SSH (Secure Shell) es un protocolo que proporciona comunicaciones seguras entre dos sistemas utilizando una arquitectura cliente-servidor y permite a los usuarios iniciar la sesión en los sistemas anfitriones del servidor de forma remota. A diferencia de otros protocolos de comunicación remota, como FTP o Telnet, SSH cifra la sesión de inicio de sesión, lo que impide que los intrusos recojan las contraseñas no cifradas de la conexión.
Red Hat Enterprise Linux incluye los paquetes básicos OpenSSH
: el paquete general openssh
, el paquete openssh-server
y el paquete openssh-clients
. Tenga en cuenta que los paquetes OpenSSH
requieren el paquete OpenSSL
openssl-libs
, que instala varias bibliotecas criptográficas importantes que permiten a OpenSSH
proporcionar comunicaciones cifradas.
1.1. SSH y OpenSSH
SSH (Secure Shell) es un programa para entrar en una máquina remota y ejecutar comandos en esa máquina. El protocolo SSH proporciona comunicaciones seguras y encriptadas entre dos hosts no confiables a través de una red insegura. También puede reenviar conexiones X11 y puertos TCP/IP arbitrarios a través del canal seguro.
El protocolo SSH mitiga las amenazas de seguridad, como la interceptación de la comunicación entre dos sistemas y la suplantación de un determinado host, cuando se utiliza para el inicio de sesión de shell remoto o la copia de archivos. Esto se debe a que el cliente y el servidor SSH utilizan firmas digitales para verificar sus identidades. Además, toda la comunicación entre los sistemas cliente y servidor está cifrada.
OpenSSH
es una implementación del protocolo SSH soportada por varios sistemas operativos Linux, UNIX y similares. Incluye los archivos centrales necesarios para el cliente y el servidor de OpenSSH. La suite OpenSSH consiste en las siguientes herramientas de espacio de usuario:
-
ssh
es un programa de acceso remoto (cliente SSH) -
sshd
es un demonio SSHOpenSSH
-
scp
es un programa de copia remota segura de archivos -
sftp
es un programa de transferencia segura de archivos -
ssh-agent
es un agente de autenticación para el almacenamiento de claves privadas -
ssh-add
añade identidades de clave privada assh-agent
-
ssh-keygen
genera, gestiona y convierte las claves de autenticación parassh
-
ssh-copy-id
es un script que añade claves públicas locales al archivoauthorized_keys
en un servidor SSH remoto -
ssh-keyscan
- recoge las claves públicas de host SSH
Actualmente existen dos versiones de SSH: la versión 1 y la versión 2, más reciente. La suite OpenSSH
en Red Hat Enterprise Linux 8 sólo soporta la versión 2 de SSH, que tiene un algoritmo de intercambio de claves mejorado que no es vulnerable a los exploits conocidos de la versión 1.
OpenSSH
, como uno de los subsistemas criptográficos centrales de RHEL, utiliza políticas criptográficas para todo el sistema. Esto asegura que los conjuntos de cifrado y los algoritmos criptográficos débiles están desactivados en la configuración por defecto. Para ajustar la política, el administrador debe utilizar el comando update-crypto-policies
para hacer la configuración más estricta o más floja o excluir manualmente las políticas criptográficas de todo el sistema.
El conjunto OpenSSH
utiliza dos conjuntos diferentes de archivos de configuración: los de los programas cliente (es decir, ssh
, scp
, y sftp
), y los del servidor (el demonio sshd
). La información de configuración de SSH para todo el sistema se almacena en el directorio /etc/ssh/
. La información de configuración SSH específica del usuario se almacena en ~/.ssh/
en el directorio de inicio del usuario. Para una lista detallada de los archivos de configuración de OpenSSH, vea la sección FILES
en la página man sshd(8)
.
Recursos adicionales
-
Páginas de manual para el tema
ssh
listadas por el comandoman -k ssh
. - Uso de políticas criptográficas en todo el sistema.