Zawsze frustrowało mnie łączenie się z komputerami z systemem Windows. Nie, nie jestem przeciwnikiem ani zwolennikiem Microsoftu i jego produktów. Każdy produkt istnieje w swoim celu, ale nie o to tutaj chodzi.
Łączenie się z serwerami Windows zawsze było dla mnie niezwykle bolesne, ponieważ te połączenia są albo konfigurowane w jednym miejscu (witaj WinRM z HTTPS), albo nie działają bardzo stabilnie (witaj RDP dla maszyn wirtualnych za granicą).
Dlatego przypadkowo natknąłem się na projekt Win32-OpenSSH, postanowiłem podzielić się wrażeniami z konfiguracji. Być może to narzędzie zaoszczędzi komuś wiele nerwów.
Wyjaśnienie: aplet Nowa reguła NetFirewall używany w systemie Windows Server 2012 i nowszych wersjach. W najstarszych systemach (lub desktopach) możesz użyć polecenia:
A potem to ustaliliśmy sshd_config, w którym będziemy umieszczać C: Dane programu. Na przykład:
PasswordAuthentication no
PubkeyAuthentication yes
I utwórz katalog w folderze użytkownika .ssh, a w nim plik autoryzowane_klucze. Zapisujemy tam klucze publiczne.
Ważne wyjaśnienie: tylko użytkownik, w którym katalogu znajduje się plik, powinien mieć prawo zapisu do tego pliku.
Ale jeśli masz z tym problemy, zawsze możesz wyłączyć sprawdzanie uprawnień w konfiguracji:
StrictModes no
Swoją drogą, w C: Pliki programówOpenSSH są 2 skrypty (Napraw HostFilePermissions.ps1, Napraw plikUserFilePermissions.ps1), które powinny, ale nie są zobowiązane do ustalania praw, w tym m.in autoryzowane_klucze, ale z jakiegoś powodu się nie rejestrują.
Nie zapomnij ponownie uruchomić usługi sshd po zastosowaniu zmian.
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>
Subiektywne zalety/wady.
Plusy:
Standardowe podejście do łączenia się z serwerami. Gdy jest niewiele komputerów z systemem Windows, bardzo niewygodne jest, gdy:
Więc tutaj używamy ssh, a tutaj używamy rdp,
i ogólnie najlepszą praktyką w przypadku bastionów jest najpierw tunel SSH, a przez niego RDP.
Łatwy w konfiguracji Myślę, że to oczywiste.
Szybkość połączenia i praca ze zdalną maszyną Nie ma powłoki graficznej oszczędzającej zarówno zasoby serwera, jak i ilość przesyłanych danych.
Wady:
Nie zastępuje całkowicie protokołu RDP. Niestety nie wszystko można zrobić z konsoli. Mam na myśli sytuacje, w których wymagane jest GUI.