GNU/Linux >> Tutoriales Linux >  >> Linux

Un tipo de Windows en un mundo Linux:configurar el comando SSH en Linux

Linux y Windows solían ser enemigos mortales, pero hoy en día tienden a llevarse mucho mejor. De hecho, ahora incluso puede usar SSH de forma nativa en Windows:tanto como cliente como servidor. ¿Qué hace cuando es administrador de Windows pero también necesita administrar máquinas Linux? ¡Te acostumbras al comando SSH (Secure Shell) en Linux!

Esta es la Parte IV de la serie de publicaciones de blog Un tipo de Windows en un mundo Linux. Si desea obtener más información sobre conceptos populares de Linux, asegúrese de consultar la Parte I, la Parte II y la Parte III.

En esta publicación, aprenderá todo sobre cómo habilitar SSH en Linux y cómo configurar su cliente SSH de Windows para conectarse a servidores remotos de Linux.

Nota:Todos los ejemplos usarán OpenSUSE Linux.

Alejarse del entorno de escritorio

En la primera publicación de esta serie, el tutorial recomendaba usar el entorno de escritorio KDE. Mientras realizaba la configuración de OpenSUSE, probablemente vio otra opción tentadora; la edición de servidor de OpenSUSE.

Si ha instalado la edición de servidor de la mayoría de las distribuciones de Linux (incluido OpenSUSE), es posible que haya notado la falta total de un escritorio. La edición Server de las distribuciones más populares (como OpenSUSE, así como Ubuntu Server y CentOS) es como Windows Server Core:no hay escritorio del que hablar.

Para comprender por qué el escritorio generalmente se evita en la cultura de Linux, debe comprender la CLI y SSH.

SSH:The Gold Standard of Remote Management

SSH, como muchos otros protocolos de gestión remota, es un sistema basado en cliente-servidor. Un cliente se conecta de forma remota a través de la red a un servidor y le permite ejecutar comandos (o incluso transferir archivos). SSH es el estándar de facto cuando se trata de administrar Linux de forma remota.

Dado que SSH existe desde hace mucho tiempo y está profundamente integrado en el ecosistema de Linux, las utilidades de administración de línea de comandos dominan el entorno de servidor de Linux. La mayoría de las distribuciones de servidores Linux no tienen una interfaz gráfica.

Uso de comandos SSH en Linux

Basta de hablar. Veamos qué puede hacer SSH habilitándolo primero en OpenSUSE Linux. Para hacerlo, utilice el administrador de paquetes de YaST. Para habilitar SSH con YaST en OpenSUSE:

  1. Haga clic en el menú de inicio, escriba terminal y elija Consola suponiendo que haya instalado KDE Desktop Manager al instalar OpenSUSE.
  2. En la terminal, abra YaST ejecutando sudo yast .
  3. Una vez en YaST, flecha hacia abajo hasta sistema , luego flecha hacia administrador de servicios y presione Entrar para continuar.
  4. Flecha hacia abajo para sshd, y presiona alt+s para iniciar el servicio SSH.
  5. Presione alt+r para cambiar el modo de inicio de manual a en el arranque. Esto garantizará que el servicio del servidor SSH se inicie incluso después de reiniciar.
  6. Presiona alt+o a ok los cambios y aplicarlos.

Puede ver estos pasos en acción a continuación.

Permitir SSH a través del firewall

Casi todas las distribuciones de Linux vienen con algún tipo de firewall para protegerlo como lo hace Windows. Puede leer sobre el cortafuegos de OpenSUSE aquí. Para asegurarse de que puede acceder al servicio SSH de forma remota desde Windows, debe permitirlo a través del firewall. Para hacer eso:

  1. Aún en la terminal, inicie YaST de nuevo con sudo yast .
  2. Flecha hacia abajo hasta Seguridad y usuarios y luego la flecha hacia Firewall y presione Entrar para continuar.
  3. Navegar a Zonas –> Público y flecha hacia Servicios—Puertos panel de la derecha.
  4. Flecha hacia abajo para encontrar ssh en los servicios.
  5. Seleccione ssh con la barra espaciadora y presiona alt+d para agregar la selección.
  6. Presiona alt+a para aceptar los cambios.

Puede ver todos estos pasos arriba representados visualmente a continuación.

Al igual que Windows, Linux tiene diferentes niveles de confianza para aplicar reglas de firewall. Estos niveles se conocen como zonas. Windows tiene zonas públicas, de trabajo y privadas de forma predeterminada. Linux tiene muchos más, pero el valor predeterminado es la zona pública.

Conexion a Linux desde Windows

Afortunadamente, en estos días, Windows 10 tiene un cliente SSH incorporado. Para conectarse a un host de Linux, abra un símbolo del sistema (cmd) o una consola de PowerShell y especifique el nombre de usuario con el que conectarse y la IP o el nombre de host.

> ssh @

Si todo va bien, el cliente SSH debería pedirle que acepte una huella digital. Una huella dactilar es un identificador para asegurarse de que alguien no haya secuestrado la dirección IP de destino.

Si está ejecutando Windows 7, aún puede conectarse mediante SSH a su host Linux. Solo tendrá que descargar el cliente SSH de Microsoft desde aquí. Este cliente SSH es el mismo que usa Windows 10.

Una vez que escribas yes e ingrese su contraseña, ¡está conectado a su servidor! Ahora puedes usar la línea de comandos como si estuviéramos abriendo una terminal en la propia computadora.

No exponga SSH (puerto predeterminado 22) a Internet a través de su enrutador. Los bots rastrean Internet constantemente buscando puertos SSH abiertos. Tan pronto como un bot encuentre un puerto abierto, comenzará a enviar spam de contraseñas tratando de entrar por la fuerza bruta.

Habilitación de la compatibilidad con mouse en SSH con Windows

Uno de los grandes inconvenientes de usar el cliente SSH nativo de Windows 10 (al menos en el momento de escribir este artículo) es la falta de compatibilidad con el mouse. Esto significa que no puede usar un mouse en el comando de medianoche como aprendió en una publicación de blog anterior.

Afortunadamente, a partir de la versión ocho del cliente de Windows OpenSSH, ¡puede obtener soporte para mouse! Instalemos este cliente.

  1. Descargue la última versión de OpenSSH-Win64 desde aquí y extraiga el archivo zip resultante. El tutorial asumirá que lo extrae a ~\Downloads\OpenSSH-Win64 .
  2. Abra una consola de PowerShell y navegue ~\Downloads\OpenSSH-Win64 con cd ~\Downloads\OpenSSH-Win64 .
  3. Compruebe la versión del cliente SSH ejecutando .\\ssh -V . Al momento de escribir esta guía, la versión debe ser 8.1.0.0-p1.
  4. SSH en su servidor Linux usando .\ssh @ .
  5. Una vez que haya iniciado sesión, pruebe la compatibilidad con el mouse ejecutando mc para ejecutar el comando de medianoche para asegurarse de que puede usar un mouse.

Puede ver todos estos pasos arriba representados visualmente a continuación.

Anulación del cliente SSH predeterminado

Si desea utilizar la nueva versión de forma más permanente, puede; pero debe anular el cliente SSH predeterminado de Windows 10. Esto garantiza que cada vez que ejecute ssh en la línea de comandos, se usa la versión más nueva (con soporte para mouse).

Suponiendo que haya extraído el cliente en ~\Downloads\OpenSSH-Win64 carpeta

  1. Mueva la carpeta OpenSSH-Win64 extraída a una carpeta permanente de su elección. Este tutorial usará C:\users\public\OpenSSH-Win64 .
  2. Ir a Inicio y luego Ejecutar y escriba sysdm.cpl o abre Sistema desde el panel de control.
  3. En Avanzado pestaña, haga clic en Variables de entorno .
  4. En Variables del sistema , haga clic en Ruta .
  5. Haga clic en Nuevo para agregar una nueva ruta y proporcionar la ruta de la carpeta al cliente SSH (C:\users\public\OpenSSH-Win64 en este caso).
  6. Haga clic en Subir hasta que esté por encima de %SystemRoot%\system32 carpeta. Esto asegurará cada vez que escriba ssh en la línea de comando, Windows buscará aquí primero.
  7. Abra una consola de PowerShell y ejecute ssh -V . Deberías ver que la versión está en 8.1.0.0-p .

Estos pasos se resumen a continuación.

Priorizar una carpeta sobre %SystemRoot%\system32 puede ser un riesgo para la seguridad. Si alguien tiene acceso a su computadora, puede decidir insertar un virus en la carpeta OpenSSH-Win64 y nombrarlo como una utilidad de Windows como cd.exe .

Debe restringir la carpeta OpenSSH-Win64 para que sea de solo lectura para cualquier persona, excepto los administradores.

  1. Haga clic derecho en la carpeta OpenSSH-Win64 y haga clic en Propiedades .
  2. Bajo la Seguridad pestaña, haga clic en Avanzado botón.
  3. Haga clic en Desactivar herencia para permitir permisos de carpeta personalizados y evitar que las carpetas principales anulen los permisos en la carpeta OpenSSH-Win64.
  4. Elija Agregar , busque los Administradores grupo y darles todos los derechos.
  5. Haga clic en Agregar , busca Todos grupo y darles permisos de solo lectura.
  6. Seleccione el permiso Reemplazar todos los objetos secundarios casilla de verificación para propagar esta configuración a todos los archivos en la carpeta OpenSSH-Win64; haz clic en Aplicar .
  7. Ahora pruebe estos permisos creando un nuevo archivo en la carpeta OpenSSH-Win64. Windows debería requerir un aviso de administrador.

Puede ver todos estos pasos arriba representados visualmente a continuación.

Gestionar sesiones desconectadas con Tmux

¡Ay, qué dolor! Está a la mitad de la ejecución de un comando de ejecución prolongada a través de SSH y su Internet se desconecta. ¡Ahora no tiene idea de en qué estado se encuentra el servidor Linux! ¿Se hace con ese comando? ¿Cómo lo recuperas?

Las sesiones desconectadas son un problema legítimo con SSH y que, afortunadamente, tiene una solución sencilla. Necesita un multiplexor de terminal (tmux).

Tmux significa tanto la abreviatura de terminal multiplexer como el nombre del programa en sí

Tmux es un administrador de sesión para SSH. Se "mantiene" en una sesión si se desconecta y la mantiene ejecutándose en segundo plano. Puede volver a conectarse a esa sesión más tarde o incluso crear varias sesiones y saltar entre ellas.

Para gestionar sesiones desconectadas con tmux:

  1. En la terminal de Linux, descargue e instale la utilidad tmux ejecutando sudo zypper install -y tmux como se ve a continuación:

También puede usar YaST para descargar la utilidad tmux.

La mayoría de las distribuciones de Linux tienen un administrador de paquetes de línea de comandos diferente. OpenSUSE utiliza zypper. Arch usa pacman. Ubuntu usa apt. Red Hat usa dnf y yum. Afortunadamente, la sintaxis de estos administradores de paquetes es bastante similar en todos los ámbitos.

2. En su computadora con Windows, abra una consola PowerShell y SSH en su servidor Linux. El tutorial usará un nombre de usuario de homelab y una IP de servidor Linux de 192.168.134.169.

ssh @

3. Abra tmux ejecutando tmux una vez conectado. Deberías obtener una barra verde en la parte inferior

4. Ejecute un comando que genere algún texto. No importa lo que sea. Este tutorial está usando neofetch . Puedes ejecutar ls también.

5. Desconecte la sesión cerrando PowerShell. Esta acción simula un abandono.

6. Vuelva a conectarse a su servidor Linux usando SSH.

7. Ahora vuelva a conectarse a la sesión anterior ejecutando tmux a Aún debería ver el resultado de ese ls anterior dominio. ¡Hurra, no hay pérdida de datos por la desconexión!

Puede ver todos estos pasos arriba representados visualmente a continuación.

Si intenta ejecutar la utilidad Midnight Commander dentro de tmux , puede notar que no tiene soporte para mouse. Puedes arreglar eso ejecutando mc -x en su lugar.

Habilitación de tmux al iniciar sesión

De forma predeterminada, tmux no estará disponible en todas las sesiones SSH. Puede cambiar eso obligando a tmux a adjuntarse a su sesión SSH cada vez que inicie sesión.

Suponiendo que está SSHed a su servidor Linux:

  1. Abra la utilidad Midnight Commander usando mc.

2. Resalte .bashrc archivo y presiona editar .

El .bashrc El archivo es un script de shell (por lotes) que se ejecuta cada vez que inicia sesión a través de la línea de comandos

3. Agregue el siguiente código de script de shell al final del archivo de texto.

if [ -z "$TMUX" ]; then tmux attach -t default || tmux new -s default fi

4. Haga clic en salir y guarde cuando se le solicite.

5. Pruebe la conexión automática de tmux desconectándose de su sesión SSH y volviendo a unirse. Debería obtener una barra verde en la parte inferior automáticamente, lo que indica que está conectado a un tmux sesión!

Eso es solo arañar la superficie de lo que tmux puede hacer, es un programa multitarea bastante poderoso. Si le pregunta a cualquier administrador de Linux cuál es su comando más utilizado, probablemente sea tmux .

Resumen

Con esto concluye la última publicación en A Windows Guy in a Linux World serie de publicaciones de blog. ¡Estén atentos al blog de ATA para la próxima instalación!


Linux
  1. Cómo encontrar conexiones SSH activas en Linux

  2. comando linux mv

  3. Linux du comando

  4. Ocultar los archivos ocultos de Linux en Windows

  5. linux ejecutar comando de forma remota

Cómo pasar la contraseña al comando SSH en Linux

Uso del comando SSH en sistemas Linux/Unix

Un chico de Windows en un mundo Linux:VS Code y SSH remoto

Un chico de Windows en un mundo Linux:usuarios y permisos de archivo

Un tipo de Windows en un mundo Linux:YaST y el escritorio

Configuración de un entorno de desarrollo brillante dentro de Linux en Windows 10