¿Qué es OpenSSH y cómo usarlo?

Como mencionamos en las lecciones anteriores, OpenSSH es una implementación gratuita de los protocolos SSH-1 y SSH-2, disponibles desde el sitio web oficial de OpenSSH.

OpenSSH fue escrito por desarrolladores del proyecto OpenBSD y puesto a disposición bajo una licencia de tipo BSD y aunque fue diseñado para los sistemas operativos tipo Unix, pronto paso a ser utilizable también por Windows.

En la mayoría de los casos, OpenSSH funciona igual en Windows y Unix, aunque todavía hay existen pequeñas diferencias.

A continuación, vamos a ver al detalle como instalar OpenSSH, las características de OpenSSH y su uso.

Características de OpenSSH

OpenSSH es una implementación SSH muy completa e incluye varias características que te enumero a continuación:

  • Aplicaciones de clientes para acceso remoto y ejecución de comandos remotos
  • Copia segura de archivos a través de la red
  • Servidor SSH altamente configurable
  • Interfaces de línea de comandos, para todos los programas, que facilitan la ejecución de scripts con herramientas estándar de Unix
  • Instrumentos estándar Unix (shell, Perl, etc.)
  • Numerosos algoritmos de cifrado y mecanismos de autenticación seleccionables
  • Agente de SSH capaz de almacenar las claves para facilitar su uso
  • Soporte para proxies SOCKS
  • Soporte para reenviar puertos TCP y X11
  • Funciones de historial y grabación para facilitar la depuración

Instalación de OpenSSH en Windows

Si estas utilizando un operativo basado en Unix/Linux, como Ubuntu o macOS es muy probable que ya tengas instalado el SSH. Si quieres verificar, puedes hacerlo desde la Terminal y comprobar la versión de SSH instalada, utilizando el comando ssh -V.

En Windows, sin embargo, debes instalar OpenSSH si quieres utilizarlo, para ello la instalación de OpenSSH puede realizarse de dos maneras diferentes.

La primera, mediante el uso de Cygwin mientras que la segunda y menos engorroso (solamente para las versiones de Windows Server 2022, Windows Server 2019, Windows 10) a través de “Configuración -> Aplicaciones y características -> Características opcionales”.

Luego debes buscar la opción de “Cliente OpenSSH” ( y “OpenSSH Server” ) en la barra de búsqueda de “Características opcionales” para instalar OpenSSH, como ya se detalla en el segundo artículo de la guía SSH.

Para instalar OpenSSH a través de Cygwin es necesario, instalar la biblioteca de Cygwin. Cygwin se usa porque ofrece una fórmula sencilla de instalar una amplia colección de software de código abierto en Windows.

Cygwin es, una colección de herramientas que permiten compilar y ejecutar aplicaciones Unix o Linux en un sistema operativo Windows, utilizando una interfaz de texto similar a la de Linux.

Este conjunto permite a los desarrolladores migrar fácilmente aplicaciones de Unix o Linux a sistemas basados en Windows.

Después de descargar el ejecutable e instalarlo, asegúrate de que:

  • se incluya C:\cygwin\bin en la RUTA de las variables del sistema
  • se cree una variable de entorno llamada CYGWIN y asignarle el valor ntsec tty

Una vez revisado esto, al abrir Cygwin debes asegurarte de instalar los siguientes paquetes:

  • openssh – la suite completa que incluye archivos de soporte
  • cygrunsrv – necesario para ejecutar ssh como servicio de Windows

En detalle, en la barra de búsqueda en Cygwin escribe primero openssh y completa su instalación, luego haz lo mismo con cygrunsrv .

Una vez hecho esto, deberías tener instaladas las herramientas necesarias para continuar con la instalación de OpenSSH.

¿Cómo usar un cliente SSH en Windows?

Una vez que OpenSSH esté instalado en Windows, vas a poder usar la aplicación como cliente ssh , scp o sftp . Por ejemplo, una conexión SSH normal puede tener lugar de la siguiente manera:

# log-in al server.text.com como usuario ciberninjas
ssh -l ciberninjas server.text.com
# copiar un fichero prueba.txt del servidor a la máquina local
scp prueba.txt server.text.it

La única dificultad que puedes encontrar en Windows es encontrar el directorio de ~/.ssh que es la ruta en la que se guardará el archivo.

En Unix, el directorio home generalmente se encuentra en /home/NombreUsuario .

Si estás utilizando un shell de comando estándar de Windows (por ejemplo cmd) o si quieres acceder desde el Explorador de Windows, directorio ~/.ssh . Es muy posible que quieras encontrar la ruta adecuada.

Para ello, escribe este comando desde un shell de comandos de Windows (CMD) para encontrar el directorio:

C:\>cygpath -w ~
# Verás una ruta similar a este:
C:\cygwin\home\ciberninjas

El comando cygpath convierte las rutas de Cygwin en rutas de Windows y con este comando se muestra la ruta principal del directorio de Cygwin. Por lo tanto, los archivos del cliente SSH se almacenarán dentro del directorio: **C:\cygwin\home\ciberninjas.ssh**.

¿Cómo configurar un servidor SSH en Windows?

El servidor SSH (sshd) comienza en Cygwin como un servicio estándar de Windows, llamado Cygwin SSH Service . Cygwin proporciona un script llamado ssh-host-config para configurar este servicio.

Una vez, asegurado de haber configurado correctamente las variables de ruta y el entorno de OpenSSH y Cygwin, podemos dirigirnos al CMD de Windows:

C:\> ssh-host-config

Deberás responder a todas las preguntas de manera positiva y al final, el servicio del servidor SSH debería estar listo para poder comenzar a trabajar con él.

Si abres el panel de control de los Servicios de Windows (escribiendo en la barra de búsqueda de Windows “Servicios” para encontrarlo) y buscas el servicio Cygwin SSHD Service. Este debería de aparecer allí.

También, deberías de poder iniciarlo o apagarlo desde una terminal, lanzando los comandos:

C:\> net start sshd
ó
C:\> net stop sshd

Llegados aquí. La configuración del archivo ssh-host-config es mucho más complejo y se pueden gestionar numerosas características del protocolo SSH: Como la política criptográfica, el reenvío de puertos, el registro de verbosis, etc.

Diferentes archivos de configuración

Hasta aquí, hemos podido ver cómo instalar un cliente y servidor OpenSSH, tanto para el Cliente como para el Servidor OpenSSH es posible crear archivos de configuración que te permitan agregar o modificar funciones específicas.

Un ejemplo clásico de la configuración de los archivos del lado del cliente es la necesidad de almacenar todas las direcciones IP remotas, diferentes nombres de usuario, puertos y las opciones de conexión.

En este sentido, OpenSSH nos ayuda a establecer las opciones SSH necesarias para la conexión remota en un archivo de configuración específico. Por lo tanto, crear un archivo de configuración particular permite no solo ahorrar tiempo, sino que también evitar almacenar múltiples datos de conexión.

A cambio, incluso en el lado del servidor, se pueden configurar diferentes configuraciones de conexión. Por ejemplo, una configuración común para un servidor SSH dedicado a la autentificación a través del sistema de claves públicas y privadas.


Conclusiones finales

En esta lección vimos cómo iniciar un servicio de servidor SSH y cómo usar un cliente SSH.

Aprendimos que tanto el Cliente como el Servidor OpenSSH tienen archivos de configuración que puedes modificar para administrar o agregar configuraciones de conexión concretas.

En los próximos artículos de esta guía veremos, a través de casos de uso, algunas de estas configuraciones.

Relacionado

¿Cómo ejecutar una sesión SSH desde tu smartphone?

Los teléfonos inteligentes en estos días tienen energía más que suficiente para ejecutar clientes SSH livianos, lo que permite conectarse a tus VPS y solucionar problemas importantes cuando no tiene acceso a una computadora portátil y WiFi. Clientes SSH de teléfonos inteligentes Los clientes SSH móviles realmente permiten hacer lo mismo que cualquier software de SSH en un servidor. Lo que los distingue es cómo mejorar ¡SEGUIR LEYENDO!

Nuevo Malware SSH-Snake roba Claves SSH para Propagarse por la Red

Un actor de amenazas está utilizando una herramienta de mapeo de red de código abierto llamada SSH-Snake para buscar claves privadas sin ser detectadas y moverse lateralmente en la infraestructura de la víctima. SSH-Snake fue descubierto por el Sysdig Threat Research Team (TRT), que lo describe como un "gusano automodificador" que se diferencia de los gusanos SSH tradicionales al evitar los patrones típicamente asociados con ataques ¡SEGUIR LEYENDO!

Guía SSH: Conoce todo sobre el protocolo de seguridad en la red

SSH (Secure SHell, shell seguro) es un protocolo de red que protege la conexión entre un cliente y un servidor, así como los datos que transmite este último. Esto se hace creando una sesión remota encriptada, utilizando una interfaz simple y práctica basada en la línea de comandos. En esta guía analizaremos todos los aspectos del protocolo que opera a través de algoritmos de encriptación que ¡SEGUIR LEYENDO!

Características principales de SSH

Veamos las principales características del protocolo de red SSH: Privacidad, integridad, autenticación, autorización y tunelización En la lección anterior revisamos cómo hacer una conexión SSH entre un cliente SSH y un servidor. En esta lección presentaremos en detalle las diversas características del protocolo SSH. Hemos visto lo importante que es SSH para crear un canal de comunicación seguro entre dos partes y proteger los datos en ¡SEGUIR LEYENDO!

¿Cómo hacer una conexión SSH?

Analicemos en detalle el procedimiento necesario para conectar dos terminales en Windows y Linux a través del protocolo SSH. En esta lección mostraremos en detalle cómo hacer una conexión SSH . Supongamos que no tenemos nuestro ordenador disponible, ya sea del trabajo o personal, y por lo tanto estamos fuera de casa. La necesidad más común, en general, es poder acceder a sus archivos personales de ¡SEGUIR LEYENDO!

¿Cómo Configurar un Servidor SSH?

Aprendamos a configurar un servidor SSH tanto a través del archivo de configuración del servidor, como desde la línea de comandos. Después de instalar el servidor SSH, es importante destacar que existen varios parámetros que permiten definir su comportamiento bajo condiciones específicas. Por ejemplo, como mantener el número de conexiones inactivas después de un cierto límite de tiempo, técnicas de autenticación o el número de bits ¡SEGUIR LEYENDO!

Introducción al protocolo SSH

Descubramos qué es SSH (Secure SHell) y por qué es tan importante para establecer conexiones seguras entre clientes y servidores. En esta guía, presentaremos uno de los protocolos de red más importantes, llamado SSH (Secure SHell , shell seguro). SSH es un protocolo que asegura la conexión entre un cliente y un servidor, mediante la creación de una sesión remota encriptada, utilizando una interfaz de línea ¡SEGUIR LEYENDO!