Ich war schon immer frustriert, wenn ich eine Verbindung zu Windows-Rechnern herstellen musste. Nein, ich bin weder Gegner noch Befürworter von Microsoft und seinen Produkten. Jedes Produkt existiert für seinen eigenen Zweck, aber darum geht es hier nicht.
Es war für mich immer unerträglich schmerzhaft, eine Verbindung zu Windows-Servern herzustellen, da diese Verbindungen entweder über eine Stelle konfiguriert werden (Hallo WinRM mit HTTPS) oder nicht sehr stabil funktionieren (Hallo RDP zu virtuellen Maschinen im Ausland).
Daher bin ich zufällig auf das Projekt gestoßen Win32-OpenSSH, habe ich beschlossen, meine Setup-Erfahrung zu teilen. Vielleicht erspart dieses Tool jemandem viel Nerven.
Klarstellung: Applet Neue-NetFirewallRule Wird unter Windows Server 2012 und höher verwendet. In den ältesten Systemen (oder Desktops) können Sie den Befehl verwenden:
Klarstellung: Sie müssen einen absoluten Pfad angeben.
Was kommt als nächstes?
Und dann haben wir es eingerichtet sshd_config, die wir platzieren werden C:Programmdaten. Zum Beispiel:
PasswordAuthentication no
PubkeyAuthentication yes
Und erstellen Sie ein Verzeichnis im Benutzerordner .ssh, und darin die Datei autorisierte_Tasten. Dort notieren wir die öffentlichen Schlüssel.
Wichtige Klarstellung: Nur der Benutzer, in dessen Verzeichnis sich die Datei befindet, sollte das Recht haben, in diese Datei zu schreiben.
Wenn Sie jedoch Probleme damit haben, können Sie die Rechteprüfung jederzeit in der Konfiguration deaktivieren:
StrictModes no
Übrigens drin C:ProgrammeOpenSSH Es gibt 2 Skripte (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), die zur Festsetzung von Rechten verpflichtet sein sollten, aber nicht verpflichtet sind, auch mit autorisierte_Tasten, aber aus irgendeinem Grund registrieren sie sich nicht.
Vergessen Sie nicht, den Dienst neu zu starten sshd danach, um die Änderungen zu übernehmen.
ru-mbp-666:infrastructure$ ssh [email protected] -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:UsersAdministrator> Get-Host
Name : ConsoleHost
Version : 5.1.14393.2791
InstanceId : 653210bd-6f58-445e-80a0-66f66666f6f6
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS C:UsersAdministrator>
Subjektive Vor-/Nachteile.
Profis:
Standardansatz für die Verbindung zu Servern. Wenn nur wenige Windows-Rechner vorhanden sind, ist es sehr unpraktisch, wenn:
Also, hier gehen wir über ssh, und hier verwenden wir rdp,
und im Allgemeinen ist die beste Vorgehensweise bei Bastionen zunächst ein SSH-Tunnel und RDP durch ihn hindurch.
Einfach einzurichten Ich denke, das ist offensichtlich.
Verbindungsgeschwindigkeit und Arbeit mit einem Remote-Computer Es gibt keine grafische Shell, wodurch sowohl Serverressourcen als auch die Menge der übertragenen Daten gespart werden.
Nachteile:
Ersetzt RDP nicht vollständig. Leider kann nicht alles über die Konsole erledigt werden. Ich meine Situationen, in denen eine GUI erforderlich ist.