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

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

Ich habe in letzter Zeit überall geschwiegen. I SSH in Linux von Windows mit dem integrierten OpenSSH-Client, den Windows 10 seit Jahren liefert, von dem Sie nichts wussten.;) Du brauchst kein Putty für SSH mit Windows (es sei denn, es macht dich glücklich, dann putty an, mein Freund.)

OpenSSH-Server zu Windows hinzufügen

Von einer administrativen PowerShell aus sehe ich, welche OpenSSH-Sachen ich aktiviert habe. Ich kann dies auch tun, indem ich im Startmenü "Windows Features" eingebe.

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

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

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

Sieht so aus, als hätte ich das OpenSSH-Client-Zeug, aber nicht den Server. Ich kann SSH von Windows aus, aber nicht.

Ich werde es mit einem ähnlichen Befehl mit dem super Weirdo, aber anscheinend notwendigen Versionsding am Ende hinzufügen:

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

SSHD unter Windows als Dienst starten

Sobald dies abgeschlossen ist (und Sie können dies natürlich auch mit OpenSSH.Client ausführen, um beide Seiten zu erhalten, wenn Sie dies nicht getan haben), können Sie den SSH-Server (als Windows-Dienst) damit starten und sicherstellen, dass er ausgeführt wird.

Start-Service sshd
Get-Service sshd

Da es sich um einen Windows-Dienst handelt, können Sie ihn als "OpenSSH SSH Server" in services.msc sehen und ihn so einstellen, dass er beim Start automatisch gestartet wird, wenn Sie möchten. Sie können dies erneut tun, wenn Sie möchten, über PowerShell

Set-Service -Name sshd -StartupType 'Automatic'

Denken Sie daran, dass wir SSH über Port 22 verwenden, sodass an dieser Stelle eine Firewall-Regel auf 22 eingeht. Es liegt an Ihnen, sich der Sicherheit bewusst zu sein. Vielleicht erlauben Sie SSH-Eingänge in Ihren Windows-Rechner nur mit öffentlichen Schlüsseln (keine Passwörter) oder vielleicht macht es Ihnen nichts aus. Sei dir nur bewusst, es liegt an dir, nicht an mir.

Jetzt kann ich von jedem Linux- (oder Windows-) Computer wie ein Profi SSH auf meinen Windows-Computer zugreifen! Hinweis:Ich verwende das .local-Domänensuffix, um sicherzustellen, dass ich keinen Computer in meinem VPN erhalte (der in meinem lokalen Subnetz bleibt)

$ ssh [email protected]
Microsoft Windows [Version 10.0.19041.113]
(c) 2020 Microsoft Corporation. All rights reserved.

scott@IRONHEART C:\Users\scott>pwsh
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1385ms.
⚡ scott@IRONHEART>

Beachten Sie, dass ich beim SSH-Einstieg in Windows die Standard-cmd.exe-Shell erhalten habe. Denken Sie auch daran, dass es einen Unterschied zwischen einer Konsole, einem Terminal und einer Shell gibt! Ich kann mit jedem Terminal in jede Maschine ssh und bei jeder Shell landen. In diesem Fall war der DEFAULT cmd.exe, was suboptimal ist.

Konfigurieren der Standard-Shell für OpenSSH in Windows

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 alles verwenden, was Sie glücklich macht.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force

Wenn ich jetzt von woanders auf meinen Windows-Rechner ssh (sogar mein iPad!), erhalte ich die Shell, die ich will:

$ ssh [email protected]
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1854ms.
⚡ scott@IRONHEART>

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

Außerdem kann ich jetzt, da dies eingerichtet ist, WinSCP (erhältlich im Windows Store) sowie scp (Secure Copy) verwenden, um Dateien zu übertragen.

Natürlich können Sie auch WinRM oder PowerShell Remoting über SSH verwenden, aber für mein kleines internes Netzwerk fand ich diesen Mechanismus einfach und sauber. Jetzt ist mein Herumgeschwafel konfessionslos!

Sponsor: Haben Sie schon versucht, in Rider zu entwickeln? Diese schnelle und funktionsreiche plattformübergreifende IDE verbessert Ihren Code für .NET-, ASP.NET-, .NET Core-, Xamarin- und Unity-Anwendungen unter Windows, Mac und Linux.


Linux
  1. So booten Sie von einem USB-Laufwerk in VirtualBox unter Linux

  2. Wie man SSH unter Linux von Android aus macht

  3. Ssh – Zugriff auf den Linux-Server von einem Windows-Computer im grafischen Modus über Ssh?

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

  5. Wie füge ich aus der Zwischenablage in Nano ein?

So führen Sie SSH in ein bestimmtes Verzeichnis unter Linux aus

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?

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

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

So richten Sie ein Registerkartenprofil in Windows Terminal ein, um automatisch SSH in eine Linux-Box einzubinden