GNU/Linux >> Znalost Linux >  >> Linux

SNADNÝ ZPŮSOB, jak SSH do Bash a WSL2 ve Windows 10 z externího počítače

Toto je zajímavý blogový příspěvek o tom, jak SSH do WSL2 ve Windows 10 z externího počítače. Přečtěte si to. Vědět, jak to funguje. Nauč se to. A NEDĚLEJTE TO, PROTOŽE JE TO PŘÍLIŠ SLOŽITÉ .

NEDĚLEJ TO. To je v pořádku. Funguje to. Ale je to barokní. Přesměrováváte porty do malé místní podsítě založené na virtuálních počítačích, řešíte změny IP adres WSL2, budete muset udržovat svůj virtuální počítač v chodu a obecně se snažíte jezdit na ledě do kopce.

Tady je ta věc. V tomto příspěvku – což byste neměli dělat – vypínáte bránu Windows Firewall pro váš port, přesměrováváte do interní podsítě a poté necháte WSL převzít kontrolu.

ALE! Windows 10 již ví, jak přijímat připojení SSH. Ve skutečnosti je OpenSSH dodáván jako „Feature on Demand“ po celá léta. Problém je v tom, že se vám (přepínače Mac a Linux) nelíbí výchozí prostředí – PowerShell.

Tak proč nezměnit výchozí prostředí Windows pro SSH na Bash WSL2?

Boom. Nyní nemáte žádné přesměrování portů, firewally se otevírají pouze pro jeden proces a vaše instance WSL2 se spustí při vstupu. Doslova nejlepší ze všech světů.

Jak nastavíte připojení SSH do WSL2 na počítači se systémem Windows 10

Nejprve otevřete výzvu správce PowerShell (nabídka Start, zadejte PowerShell, podržte ctrl+shift a stiskněte Enter) zadejte toto:

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

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

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

Vidíte, jak mám klienta a ne OpenSSH server? Přidejte to:

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

Nyní buď spusťte službu SSHD, nebo nastavte její automatické spouštění:

Start-Service sshd
Get-Service sshd

nebo automaticky:

Set-Service -Name sshd -StartupType 'Automatic'

Konfigurace výchozího prostředí pro OpenSSH ve Windows 10

Na svém serveru (počítači se systémem Windows, na který používám SSH) nastavím klíč registru pro nastavení výchozího prostředí. V tomto případě použiji open source multiplatformní PowerShell Core. Můžete použít cokoli, co vám dělá radost, a bash WSL2 mě dělá šťastným.

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

Všimněte si, že bash.exe v tomto kontextu spouští "wsl -d YOURDEFAULTDISTRO " takže budete chtít vědět, jaké je vaše výchozí nastavení, a pokud se vám to nelíbí, změňte jej pomocí wsl --set-default DISTRO .

HLAVU NAHORU:Potřebujete ÚPLNOU A SPRÁVNOU CESTU ve výše uvedeném příkazu. Funguje to pro jakýkoli shell. Protože používám bash.exe, spouštím WSL2 zdarma, ale SSH s tímto řešením používá klíče SSH systému Windows a ověření systému Windows. Pamatujte, že když zadáváte heslo pro ověření!

Ještě lepší, kdybych chtěl přidat položku nabídky (profil) do jednoho místního terminálu Windows se záznamem pro ssh do mého WSL na mém vzdáleném počítači Windows, který by mě do něj automaticky přihlásil odjinud pomocí veřejných klíčů, mohl bych to udělat také!

Na závěr a shrnutí:

  • Tento příspěvek na blogu – ten, který čtete, používá OpenSSH systému Windows a ověřuje se systémem Windows a poté spouští WSL2. WSL2 se spouští, používá bash a Windows zpracovává TCP provoz.
  • Tento další příspěvek na blogu – zde – má pouze porty pro předávání Windows a používá Linux OpenSSH WSL2 a ověřuje se proti Linuxu. Windows je zapojen pouze periferně. IP adresa WSL2 se po restartu změní a budete muset udržovat svá pravidla portproxy a pravidla brány firewall pomocí skriptu naslouchaného na konci tohoto příspěvku.

Uvědomte si, co chcete, a použijte ten správný pro vás.

Užívat si!

Sponzor: Chyba v produktu? Dostaňte se na konec, rychle, pomocí živého vyhledávání protokolu produkce v Seq 2020.1.


Linux
  1. Nejrychlejší způsob, jak vložit blok textu do editoru vi z externího zdroje

  2. Zjistěte verzi OS, Linux a Windows z Powershell

  3. Jak SCP z linuxového serveru na Windows klienta

  1. Jak se přihlásit do databáze Postgresql z příkazového řádku

  2. Jak vložit do nano ze schránky?

  3. Jak se mohu připojit k Postgres běžícímu na hostiteli Windows zevnitř WSL2?

  1. Snadný způsob, jak zkontrolovat test rychlosti SSH

  2. Účel .bashrc a jak to funguje?

  3. Jak zjistit, zda je Shell řízen z Ssh?