Principal
/
Ayuda con Páginas Web
/
Otros
/
¿Qué es SSH y cómo lo uso?

¿Qué es SSH y cómo lo uso?

SSH significa protocolo Secure Shell, y probablemente lo hayas encontrado mientras navegas por el mundo del hosting web. Asegura toda la información mientras está en tránsito a través de una red cifrándola. Gracias a este protocolo de seguridad, puedes administrar tus archivos, transferirlos o modificarlos y ejecutar comandos directamente en el servidor.

En este artículo, nos centraremos en lo que significa SSH, cómo funciona, para qué se usa y qué son las claves SSH. Aquí también aprenderás cómo establecer una conexión SSH a tu servidor y los comandos comunes a tu disposición.

¿Qué es SSH?

Tras su desarrollo inicial como una herramienta para abordar vulnerabilidades que permiten ataques de rastreo de contraseñas, el protocolo ganó popularidad y ha evolucionado. Posteriormente, se estableció como un estándar para la comunicación segura entre dispositivos.

Definición

SSH (Secure Shell) es un protocolo de red que permite el acceso remoto a través de una conexión cifrada. Proporciona una autenticación robusta y es compatible con el inicio de sesión remoto seguro, la ejecución de comandos, la transferencia de archivos, el control de acceso, el reenvío de TCP/IP, etc.

Puedes gestionar tus archivos y carpetas a través de una conexión SSH, modificar sus permisos, editar archivos directamente en el servidor, etc.

Explicación de las características de Secure Shell

El protocolo Secure Shell proporciona varias características de seguridad, y a continuación encontrarás una lista de las más notables:

  • Privacidad de tus datos – Secure Shell protege tus datos de la divulgación cifrándolos.
  • Integridad de las comunicaciones – el protocolo Secure Shell garantiza que la información intercambiada permanece inalterada.
  • Autenticación – este protocolo requiere una prueba de identidad de los remitentes y receptores para establecer una conexión.
  • Autorización – Secure Shell también te permite configurar el control de acceso a las cuentas, proporcionando a los usuarios diferentes privilegios.
  • Reenvío/tunelización para cifrar sesiones basadas en TCP/IP – los usuarios pueden configurar túneles para transferir tráfico no cifrado a través de un canal de red cifrado.

¿Para qué se usa el protocolo Secure Shell?

El protocolo Secure Shell tiene una amplia variedad de usos; la mayoría de las veces lo usan los administradores del sistema. Está implementado por defecto en servidores Unix, Linux, Windows y MAC. Este protocolo crea un canal seguro entre una computadora local y un servidor remoto, permitiendo la ejecución de comandos, acceso a recursos, transferencia de archivos, actualizaciones de rendimiento, etc.También se usa en varios protocolos de transferencia de archivos, enrutadores, administración y funcionamiento del hardware del servidor administración del sistema.

Además, el protocolo Secure Shell ayuda con la administración de identidad, el control de acceso y la automatización de procesos.

¿Cuáles son los diferentes métodos de autenticación SSH?

En general, hay dos métodos de autenticación SSH ampliamente utilizados: autenticación basada en contraseña y autenticación basada en clave pública (PKI).

Autenticación basada en contraseña

En este tipo de autenticación, cuando un cliente intenta conectarse a un servidor remoto, identifica al usuario con un usuario y contraseña. Cuando un usuario escribe sus credenciales de acceso, el servidor comprueba si están presentes en su base de datos. Los inicios de sesión se comparten a través de un canal cifrado; si coinciden, el servidor permite que el cliente se conecte.

Aunque las contraseñas son el método convencional de identificación de usuarios, siempre existe el riesgo de comprometerlas. Para mantener la higiene adecuada de las contraseñas, debes establecer contraseñas seguras, cambiarlas regularmente y mantenerlas en privado.

Desafortunadamente, con la cantidad de credenciales que usamos hoy en día, eso puede ser un desafío para muchos usuarios. Esto crea las condiciones ideales para que los hackers exploten tu información de acceso. Aunque las contraseñas están cifradas mientras están en transición entre las computadoras remotas, desafortunadamente un ataque de fuerza bruta aún podría descifrarlas. Naturalmente, este hecho hace que las contraseñas sean un método de identificación menos seguro. La divulgación de tus credenciales SSH puede permitir el acceso raíz a un hacker, lo que conllevaría terribles consecuencias.

Autenticación PKI

La autenticación basada en claves es el método preferido y se recomienda sobre la autenticación basada en contraseña, que puede ser forzada.

La autenticación PKI utiliza claves criptográficas para establecer una relación de confianza entre el servidor y el cliente. La identificación basada en clave puede requerir una frase de contraseña (contraseña) o puede funcionar sin una frase de contraseña en la clave.

Para usar este tipo de autenticación, debes generar un par de claves SSH. El par de claves consta de una clave pública y una privada. La clave pública se mantiene en el servidor, mientras que la clave privada se mantiene en tu ordenador.

Cuando te conectas a través de Secure Shell, se establece una relación de confianza entre tu ordenador y el servidor utilizando el par de claves.newsupport. Si falta una de las claves o hay una discrepancia entre las claves, no se puede establecer una conexión.

El método de autenticación que soporta SiteGround es la autenticación PKI ya que proporciona una mejor seguridad para tu acceso SSH.

Arquitectura y componentes de SSH

Secure Shell tiene una arquitectura en capas, que encapsula 3 capas principales: transporte, autenticación y conexión. En esta sección, revisaremos cada una de ellas y sus componentes, así que sigue leyendo.

Capa de transporte

Habitualmente, la capa de transporte usa el paquete de protocolos de Internet (TCP/IP) Protocolo de Control de Transmisión en el número de puerto SSH predeterminado 22. Esta capa se encarga del intercambio de claves inicial y la autenticación, verifica su integridad e inicia el cifrado/descifrado. También comprime los datos transmitidos para acelerar el proceso. Por lo tanto, juega un papel importante en el intercambio de información segura entre hosts remotos.

En SiteGround, el número de puerto predeterminado para SSH es 18765, desviándose del puerto predeterminado 22 para una mejora de seguridad adicional.

Durante el transcurso de la fase de intercambio de claves, el servidor se identifica ante el cliente utilizando una clave de host . Si se conecta a ese servidor por primera vez, el cliente le preguntará si acepta esta clave de host y, si lo hace, el cliente guarda una copia localmente.

Acceptar nuevo host

Si confirmas que deseas continuar, el cliente almacena la copia en un archivo claves de host conocidas para futura referencia.

nuevo host almacenado en el archivo de hosts conocidos

De esta manera, en conexiones consecutivas al mismo servidor, el cliente solo necesitaría verificar la clave del host contra el registro que posee.

Capa de autenticación

Cuando la capa de transporte ha configurado el cifrado, se solicita al cliente que se autentique utilizando uno de los métodos admitidos. La capa de autenticación de usuario proporciona un conjunto de algoritmos de autenticación y tiende a la autenticación del cliente.

Como se mencionó anteriormente, SiteGround solo permite la autenticación PKI y es compatible con los siguientes algoritmos de cifrado para pares de claves públicas y privadas.

  • DSA
  • RSA
  • ECDSA
  • Ed25519

El algoritmo criptográfico predeterminado para generar un par de claves en SiteGround es RSA, cifrado de 2048 bits, comparable a una contraseña de 617 dígitos.

Claves SSH

Un par de claves SSH consta de claves públicas y privadas utilizadas en un método de autenticación de clave SSH pública. En este método de autenticación, un archivo (conocido como clave privada) generalmente se guarda en el lado del cliente, y el otro archivo (conocido como clave pública) se almacena en el lado del servidor. Cada par de claves SSH es único, lo que garantiza que solo los usuarios con el par correcto tengan acceso.

  • Las claves públicas permiten a los usuarios acceder a un servidor remoto y los servidores las usan para cifrar los datos. Prácticamente cualquier persona que tenga la clave pública SSH del par puede cifrar los datos, pero solo el usuario con la clave privada puede descifrarlos.

Cuando el cliente envía la clave pública al servidor SSH, y el servidor confirma su autenticidad, el servidor marca la clave como autorizada. Por lo tanto, las claves públicas también se denominan claves autorizadas y se almacenan en el archivo_autorizadas en el directorio de inicio de la cuenta de usuario.

  • Las claves privadas también se denominan claves de identidad ya que son una prueba de la identidad del usuario. Un usuario solo puede ser autenticado correctamente por el servidor si el usuario tiene la clave privada correspondiente a la clave pública. Los usuarios deben mantener la confidencialidad de sus claves privadas y evitar compartirlas con otros.
  • Una clave de sesión es generada colectivamente por el cliente SSH y el servidor. Esta clave simétrica se usa para cifrar toda la sesión SSH. Ambas entidades acuerdan usar una clave de sesión basada en los datos de la clave pública y privada para generar un “secreto compartido”. Es compartido por las dos partes de forma segura y se utiliza para cifrar y descifrar los datos intercambiados (es decir, cifrado simétrico).

De esta manera, un fisgón no puede interceptar los datos en tránsito; cuando se cierra la sesión, la clave de la sesión se destruye.

Capa de conexión

Cuando el proceso de autenticación se completa con éxito, se inicia una conexión multiplexada al servidor en múltiples canales.newsupport. Cada uno de estos canales lógicos transfiere datos en ambas direcciones, lo que permite que muchas sesiones provengan de una sola conexión SSH.

Uno de estos canales es el Secure File Transfer Protocol (SFTP), que te permite acceder y transferir archivos de forma segura a través de una conexión SSH.

¿Cómo funciona SSH?

Como funciona SSH

Como probablemente hayas descubierto, necesitarás un cliente SSH para establecer una conexión SSH a tu servidor. Secure Shell funciona en un modelo cliente-servidor, en el que el cliente SSH es una pieza de software que permite a los usuarios conectarse a un host remoto de forma segura.

El cliente SSH inicia una solicitud de conexión SSH al servidor, y el servidor SSH responde con un mensaje aleatorio. El cliente cifra ese mensaje usando la clave privada y lo envía de nuevo al servidor. Luego, el servidor descifra ese mensaje usando la clave pública correspondiente a la clave privada del cliente. De esta manera, el servidor verifica que las claves pública y privada son parte de un par.

Una vez que se completa esa verificación, ambas entidades acuerdan un secreto compartido (clave de sesión) para usarlo en la sesión.

Cuando se establece el secreto compartido, el cliente usa la clave privada y de sesión para calcular un valor hash, que se envía al servidor. Mientras tanto, el servidor también calcula un valor hash utilizando la clave de sesión y la clave pública. Si ambos valores coinciden, eso prueba que el cliente es el propietario de la clave privada y el servidor otorga acceso SSH al cliente.

Cómo generar e importar claves SSH

Las claves SSH otorgan acceso a todos los archivos de la cuenta y no se pueden configurar para limitar el acceso a carpetas específicas. Es crucial almacenar estas claves de forma segura para evitar el acceso no autorizado.

Hasta ahora, has entendido que el primer paso para establecer una conexión SSH es generar un par de claves SSH.

Puedes hacerlo localmente o desde tu cuenta de alojamiento web si tu plan incluye acceso SSH. Todos los planes de SiteGround permiten el acceso SSH para que nuestros clientes puedan administrar eficazmente sus sitios web a través de Secure Shell.

Esta sección explicará cómo generar un par de claves desde tu Site Tools, cómo hacerlo localmente y cómo importar tu clave SSH, así que sigue leyendo.

Genera un par de claves SSH desde Site Tools

Si eres un cliente de SiteGround, para generar nuevas claves RSA, debes iniciar sesión en el Site Tools para el sitio al que deseas permitir el acceso. Cuando estés allí, navega a la pestaña Desarrolladores > Gestor claves SSH en la barra lateral, escribe un nombre para tu clave y establece una contraseña, luego haz clic en Crear.

Generar clave SSH Site Tools

Una vez creado el par, verás el mensaje “Se ha generado la clave SSH”. Puedes administrar todas tus claves desde la sección Gestionar claves SSH. Haz clic en el menú Acciones junto al nombre de la clave elegida para obtener las claves pública y privada del par.

Gestionar claves SSH Site Tools

Desde el mismo menú, también puedes especificar qué direcciones IP (o rangos de IP) pueden obtener acceso con el par de claves, cambiar su nombre y obtener las credenciales SSH.

Dado que las claves SSH son generadas directamente por el servidor, solo necesitas copiar la clave privada y guardarla en un archivo de texto en tu ordenador.

Generar un par de claves SSH localmente

Alternativamente, puedes generar un par de claves SSH en tu ordenador local; los pasos varían dependiendo de tu sistema operativo (SO).

Puedes usar un cliente SSH para Windows para generar claves SSH llamado PuTTY, y puedes seguir los pasos en este artículo sobre cómo hacerlo.

Mac OS tiene un cliente SSH incorporado llamado Terminal, puedes encontrarlo fácilmente usando la función de búsqueda de Spotlight presionando las teclas Espacio + Command. Carga la aplicación Terminal, escribe “ssh-keygen -t rsa” en la línea de comando y presiona Enter. Este comando generará un par de claves con el ID SSH “rsa” y ese será el nombre de tu par de claves.newsupport. Para obtener información más detallada, consulta nuestro artículo cómo crear claves SSH en tu Mac OS.

Los usuarios de Linux OS también pueden usar el Terminal integrado para generar claves con el mismo “ssh -keygen”.

Después de generar las claves, búscalas en la ubicación correspondiente de tu ordenador y copia la clave pública.

Cómo importar claves SSH en SiteGround

Para importar una nueva clave SSH, ve a Site Tools > Desarrolladores > Gestor claves SSH > Añadir nuevo > Importar. Introduce el nombre de la clave y pega la clave pública en el campo respectivo. Alternativamente, impórtala a través del enlace Importar clave desde archivo.

Importar clave SSH Site Tools

Cuando la clave SSH pública se importe allí, podrás administrar el acceso a la misma por dirección IP. También puedes ver la clave SSH desde el menú Acciones, aunque solo podrás ver la clave pública.

Cómo establecer acceso SSH a tu cuenta de hosting

Ahora que tus claves SSH están listas, puedes seguir los pasos en los artículos a continuación para ver cómo puedes conectarte dependiendo de tu sistema operativo.

Comandos Secure Shell comunes

Para administrar tus archivos a través de una conexión SSH, necesitarás adquirir al menos un conjunto básico de comandos para usar. Echa un vistazo a nuestros tutoriales SSH para aprender a enumerar, crear un nuevo archivo/carpeta, editar o eliminar archivos y carpetas, crear y extraer archivos, o administrar permisos y propiedades.newsupport.

Para resumir, en este artículo hemos explicado qué es el protocolo Secure Shell, su arquitectura, qué son las claves SSH y otros componentes.newsupport. También hemos mencionado cómo funciona SSH, cómo generar o importar claves SSH y cómo conectarte a tu cuenta a través de SSH.

Comparte este artículo