GNU/Linux >> Tutoriales Linux >  >> Linux

LA MANERA FÁCIL de cómo SSH en Bash y WSL2 en Windows 10 desde una máquina externa

Esta es una publicación de blog interesante sobre cómo SSH en WSL2 en Windows 10 desde una máquina externa. Léalo. Sepa cómo funciona. Aprenderlo. Y NO LO HAGAS PORQUE ES DEMASIADO COMPLEJO .

NO HAGAS ESTO. Está bien. Funciona. Pero es barroco. Está reenviando puertos a una pequeña subred local con VM, está lidiando con el cambio de direcciones IP de WSL2, tendrá que mantener su VM en funcionamiento y, en general, está tratando de patinar sobre hielo cuesta arriba.

Aquí está la cosa. En esa publicación, lo que no debe hacer, está desactivando el Firewall de Windows para su puerto, reenviando a una subred interna y luego permitiendo que WSL se haga cargo.

¡PERO! Windows 10 ya sabe cómo aceptar conexiones SSH. De hecho, se envió OpenSSH como una "Característica bajo demanda" durante años. El problema es que a usted (conmutadores de Mac y Linux) no le gusta el shell predeterminado:PowerShell.

Entonces, ¿por qué no cambiar el shell predeterminado de Windows para SSH a Bash de WSL2?

Boom. Ahora no tiene reenvío de puertos, los firewalls solo se abren para un proceso y su instancia de WSL2 se inicia al ingresar. Literalmente lo mejor de todos los mundos.

¿Cómo se configura SSH en WSL2 en su máquina con Windows 10?

Primero, abra un indicador de administrador de PowerShell (menú Inicio, escriba PowerShell, mantenga presionadas las teclas ctrl+shift y presione enter) escriba esto:

> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

¿Ves como tengo el Cliente y no el Servidor OpenSSH? Agrégalo:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Ahora inicie el servicio SSHD o configúrelo para que se inicie automáticamente:

Start-Service sshd
Get-Service sshd

o automático:

Set-Service -Name sshd -StartupType 'Automatic'

Configurar el shell predeterminado para OpenSSH en Windows 10

En mi servidor (la máquina de Windows en la que estoy usando SSH) configuraré una clave de registro para establecer el shell predeterminado. En este caso, usaré PowerShell Core multiplataforma de código abierto. Puedes usar lo que te haga feliz y la fiesta de WSL2 me hace feliz.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force

Tenga en cuenta que bash.exe en este contexto se inicia "wsl -d YOURDEFAULTDISTRO " por lo que querrá saber cuál es su valor predeterminado y, si no le gusta, cámbielo con wsl --set-default DISTRO .

ADVERTENCIA:necesita la RUTA COMPLETA Y CORRECTA en ese comando anterior. Funciona para cualquier caparazón. Como uso bash.exe, WSL2 se inicia de forma gratuita, pero SSH con esta solución usa las claves SSH de Windows y la autenticación de Windows. ¡Tenga en cuenta que cuando ingrese su contraseña para la autenticación!

Incluso mejor si quisiera agregar un elemento de menú (perfil) a una terminal de Windows local con una entrada para ingresar a mi WSL en mi máquina remota de Windows que me registraría automáticamente desde otro lugar usando claves públicas, ¡también podría hacerlo!

Para concluir y resumir:

  • Esta publicación de blog:la que está leyendo usa OpenSSH de Windows y se autentica con Windows y luego ejecuta WSL2. WSL2 se inicia, usa bash y Windows maneja el tráfico TCP.
  • Esta otra publicación de blog, por aquí, tiene puertos de reenvío de Windows únicamente, y usa Linux OpenSSH de WSL2 y se autentica contra Linux. Windows solo está involucrado de manera periférica. La dirección IP de WSL2 cambia al reiniciar y deberá mantener sus reglas de portproxy y firewall con el script escuchado al final de esa publicación.

Comprenda lo que quiere y use el adecuado para usted.

¡Disfrutar!

Patrocinador: ¿Error en producción? Llegue al fondo del asunto rápidamente con la búsqueda de registros de producción en vivo en Seq 2020.1.


Linux
  1. ¿Cómo detectar si el Shell está controlado desde Ssh?

  2. ¿Cómo cambio el directorio en Git Bash con Git para Windows?

  3. Determine la versión del sistema operativo, Linux y Windows de Powershell

  4. Cómo SCP desde un servidor Linux a un cliente Windows

  5. ¿Cómo puedo conectarme a Postgres ejecutándose en el host de Windows desde dentro de WSL2?

Cómo crear volúmenes Docker en Windows de forma fácil

Cómo SSH en su servidor Linux desde Windows

¿Cómo me conecto a Linux VPS a través de SSH desde Linux y Windows OS?

¡Cómo instalar Ubuntu 18.04 Bionic Beaver de la manera más fácil!

Cómo SSH en WSL2 en Windows 10 desde una máquina externa

Cómo SSH en una máquina con Windows 10 desde Linux O Windows O en cualquier lugar