GNU/Linux >> Linux Esercitazione >  >> Linux

IL MODO FACILE come eseguire SSH in Bash e WSL2 su Windows 10 da un computer esterno

Questo è un interessante post del blog su Come eseguire SSH in WSL2 su Windows 10 da un computer esterno. Leggilo. Sapere come funziona. Imparalo. E NON FARLO PERCHÉ È TROPPO COMPLESSO .

NON FARLO. Va bene. Funziona. Ma è barocco. Stai inoltrando le porte in una piccola sottorete locale con VM, hai a che fare con la modifica degli indirizzi IP WSL2, dovrai mantenere la tua VM in esecuzione e generalmente stai cercando di pattinare sul ghiaccio in salita.

Ecco la cosa. In quel post, cosa che non dovresti fare, stai disattivando Windows Firewall per la tua porta, inoltrandoti a una sottorete interna e quindi lasciando che WSL prenda il controllo.

MA! Windows 10 sa già come accettare connessioni SSH. In effetti, da anni viene distribuito OpenSSH come "Feature on Demand". Il problema è che a te (commutatori Mac e Linux) non ti piace la shell predefinita - PowerShell.

Quindi perché non cambiare la shell di Windows predefinita per SSH in Bash di WSL2?

Bom. Ora non hai il port forwarding, i firewall si aprono solo per un processo e la tua istanza WSL2 si avvia all'ingresso. Letteralmente il migliore di tutti i mondi.

Come si configura SSH in WSL2 sul computer Windows 10

Innanzitutto, apri un prompt di PowerShell dell'amministratore (menu Start, digita PowerShell, tieni premuto ctrl + MAIUSC e premi invio) digita questo:

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

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

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

Vedi come ho il client e non il server OpenSSH? Aggiungilo:

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

Ora avvia il servizio SSHD o impostalo per l'avvio automatico:

Start-Service sshd
Get-Service sshd

o automatico:

Set-Service -Name sshd -StartupType 'Automatic'

Configurazione della shell predefinita per OpenSSH in Windows 10

Sul mio server (la macchina Windows in cui sto utilizzando SSH) imposterò una chiave di registro per impostare la shell predefinita. In questo caso, utilizzerò PowerShell Core multipiattaforma open source. Puoi usare tutto ciò che ti rende felice e la festa di WSL2 rende felice me.

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

Nota che bash.exe in questo contesto avvia "wsl -d YOURDEFAULTDISTRO " quindi vorrai sapere qual è il tuo Default e, se non ti piace, cambialo con wsl --set-default DISTRO .

AVVISO:hai bisogno del PERCORSO COMPLETO E CORRETTO in quel comando sopra. Funziona con qualsiasi shell. Dato che sto usando bash.exe, ottengo l'avvio gratuito di WSL2 ma SSH con questa soluzione utilizza le chiavi SSH di Windows e l'autenticazione di Windows. Nota che quando inserisci la tua password per l'autenticazione!

Ancora meglio se volessi aggiungere una voce di menu (profilo) a un terminale Windows locale con una voce per ssh nel mio WSL sul mio computer Windows remoto che mi avrebbe registrato automaticamente da altrove usando le chiavi pubbliche, potrei farlo anche io!

Per concludere e riassumere:

  • Questo post del blog:quello che stai leggendo utilizza OpenSSH di Windows e si autentica con Windows e quindi esegue WSL2. WSL2 si avvia, usa bash e Windows gestisce il traffico TCP.
  • Questo altro post del blog - qui - ha solo porte di inoltro di Windows e utilizza Linux OpenSSH di WSL2 e si autentica su Linux. Windows è coinvolto solo perifericamente. L'indirizzo IP di WSL2 cambia al riavvio e dovrai mantenere le regole del portproxy e del firewall con lo script ascoltato alla fine di quel post.

Capisci cosa vuoi e usa quello giusto per te.

Divertiti!

Sponsor: Bug in prod? Vai fino in fondo, velocemente, con la ricerca dei log di produzione in tempo reale in Seq 2020.1.


Linux
  1. Lo scopo di .bashrc e come funziona?

  2. Bash + Come uscire dallo script secondario e dallo script principale in entrambi i casi?

  3. Come cambio la directory in Git Bash con Git per Windows?

  4. Come eseguire SCP dal server Linux al client Windows

  5. Come posso connettermi a Postgres in esecuzione sull'host Windows dall'interno di WSL2?

Come creare volumi Docker su Windows in modo semplice

Come SSH nel tuo server Linux da Windows

Come mi collego a Linux VPS tramite SSH da Linux e Windows OS?

Come installare Ubuntu 18.04 Bionic Beaver nel modo più semplice!

Come eseguire SSH in WSL2 su Windows 10 da un computer esterno

Come eseguire SSH in una macchina Windows 10 da Linux O Windows O ovunque