GNU/Linux >> LINUX-Kenntnisse >  >> Linux

DER EINFACHE WEG, wie man SSH in Bash und WSL2 unter Windows 10 von einem externen Computer aus macht

Dies ist ein interessanter Blog-Beitrag zum SSH-Einstieg in WSL2 unter Windows 10 von einem externen Computer aus. Lies es. Wissen, wie es funktioniert. Lern es. UND MACHEN SIE ES NICHT, WEIL ES ZU KOMPLEX IST .

MACH DAS NICHT. Das ist gut. Es klappt. Aber es ist barock. Sie leiten Ports in ein kleines VM-basiertes lokales Subnetz weiter, Sie haben es mit sich ändernden WSL2-IP-Adressen zu tun, Sie müssen Ihre VM am Laufen halten und Sie versuchen im Allgemeinen, bergauf Schlittschuh zu laufen.

Hier ist das Ding. In diesem Beitrag – was Sie nicht tun sollten – schalten Sie die Windows-Firewall für Ihren Port aus, leiten an ein internes Subnetz weiter und lassen dann WSL übernehmen.

ABER! Windows 10 weiß bereits, wie SSH-Verbindungen akzeptiert werden. Tatsächlich wird OpenSSH seit Jahren als „Feature on Demand“ ausgeliefert. Das Problem ist, dass Sie (Mac- und Linux-Umsteiger) die Standard-Shell – PowerShell – nicht mögen.

Warum also nicht die standardmäßige Windows-Shell für SSH in Bash von WSL2 ändern?

Boom. Jetzt haben Sie keine Portweiterleitung, Firewalls öffnen sich nur für einen Prozess und Ihre WSL2-Instanz startet beim Eintritt. Buchstäblich die beste aller Welten.

Wie richten Sie SSH in WSL2 auf Ihrem Windows 10-Rechner ein

Öffnen Sie zuerst eine Admin-PowerShell-Eingabeaufforderung (Startmenü, geben Sie PowerShell ein, halten Sie Strg+Shift gedrückt und drücken Sie die Eingabetaste), geben Sie Folgendes ein:

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

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

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

Sehen Sie, wie ich den Client und nicht den OpenSSH-Server habe? Fügen Sie es hinzu:

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

Starten Sie nun entweder den SSHD-Dienst oder stellen Sie ihn auf automatischen Start ein:

Start-Service sshd
Get-Service sshd

oder automatisch:

Set-Service -Name sshd -StartupType 'Automatic'

Konfigurieren der Standard-Shell für OpenSSH in Windows 10

Auf meinem Server (dem Windows-Rechner, auf dem ich SSH verwende) werde ich einen Registrierungsschlüssel festlegen, um die Standard-Shell festzulegen. In diesem Fall verwende ich Open Source Cross-Plattform PowerShell Core. Sie können verwenden, was Sie glücklich macht, und die Bash von WSL2 macht mich glücklich.

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

Beachten Sie, dass bash.exe in diesem Kontext "wsl -d YOURDEFAULTDISTRO" startet " Sie möchten also wissen, was Ihre Standardeinstellung ist, und wenn Sie sie nicht mögen, ändern Sie sie mit wsl --set-default DISTRO .

HEADS UP:Sie benötigen den VOLLSTÄNDIGEN UND KORREKTEN PFAD in diesem Befehl oben. Es funktioniert für jede Shell. Da ich bash.exe verwende, starte ich WSL2 kostenlos, aber SSH mit dieser Lösung verwendet die SSH-Schlüssel von Windows und die Windows-Authentifizierung. Beachten Sie dies, wenn Sie Ihr Passwort zur Authentifizierung eingeben!

Noch besser, wenn ich einem lokalen Windows-Terminal einen Menüpunkt (Profil) mit einem Eintrag für ssh in meine WSL auf meinem entfernten Windows-Rechner hinzufügen wollte, der mich automatisch von woanders mit öffentlichen Schlüsseln anmelden würde, könnte ich das auch tun!

Abschließend und zusammenfassend:

  • Dieser Blogpost – der, den Sie gerade lesen – verwendet OpenSSH von Windows und authentifiziert sich bei Windows und führt dann WSL2 aus. WSL2 startet, verwendet Bash und Windows verarbeitet den TCP-Verkehr.
  • Dieser andere Blogpost - hier drüben - hat nur Windows-Weiterleitungsports und verwendet Linux OpenSSH von WSL2 und authentifiziert sich gegen Linux. Windows ist nur am Rande beteiligt. Die WSL2-IP-Adresse ändert sich beim Neustart und Sie müssen Ihre Portproxy-Regeln und Firewall-Regeln mit dem am Ende dieses Beitrags abgehörten Skript beibehalten.

Verstehen Sie, was Sie wollen und verwenden Sie das Richtige für Sie.

Genießen!

Sponsor: Fehler im Produkt? Gehen Sie der Sache schnell auf den Grund, mit der Suche nach Live-Produktionsprotokollen in Seq 2020.1.


Linux
  1. So melden Sie sich über die Befehlszeile bei einer Postgresql-Datenbank an

  2. Wie erkennt man, ob die Shell von ssh aus gesteuert wird?

  3. Bash + So beenden Sie beide Male das sekundäre Skript und das Hauptskript

  4. Bestimmen Sie die Betriebssystemversion, Linux und Windows aus Powershell

  5. So führen Sie SCP vom Linux-Server zum Windows-Client aus

So erstellen Sie Docker-Volumes unter Windows auf einfache Weise

Wie Sie von Windows aus SSH in Ihren Linux-Server einbinden

Wie verbinde ich mich mit Linux VPS über SSH von Linux und Windows OS?

So installieren Sie Ubuntu 18.04 Bionic Beaver ganz einfach!

So führen Sie SSH in WSL2 unter Windows 10 von einem externen Computer aus

Wie man SSH in einen Windows 10-Rechner von Linux ODER Windows ODER überall her einfügt