- PowerShell umożliwia łączenie i zarządzanie systemami zdalnymi za pomocą SSH rodzimy w Windows 10/11 i nowsze wersje.
- Instalacja i konfiguracja OpenSSH jako klienta i serwera jest prosta i umożliwia uwierzytelnianie za pomocą hasła lub klucza publicznego, zależnie od wymogów bezpieczeństwa.
- Zaawansowane funkcje PowerShell SSH obejmują automatyzację, zarządzanie sesjami i dostosowywanie, co ułatwia zdalne administrowanie w środowiskach mieszanych.
Łączenie się przez SSH bezpośrednio z programu PowerShell nie jest już domeną guru administracji. Dziś każdy użytkownik systemu Windows może uzyskiwać dostęp do serwerów i nimi zarządzać, a nawet automatyzować zadania za pośrednictwem terminala SSH , dzięki natywnym integracjom w systemie Windows 10 i nowszych wersjach. Proces ten jest nie tylko łatwiejszy niż kiedykolwiek, ale również udoskonalony pod względem stabilności i bezpieczeństwa, co czyni go solidną alternatywą dla tradycyjnych klientów zewnętrznych.
Jeśli kiedykolwiek musiałeś zarządzać systemem zdalnym, kopiować pliki, przeglądać logi lub uruchamiać polecenia na serwerze Linux lub Windows bez odchodzenia od biurka, ten szczegółowy przewodnik będzie nieoceniony. Dowiesz się wszystkiego, od wymagań OpenSSH, instalacji i konfiguracji na różnych platformach, po praktyczne przykłady użycia zarówno podstawowych poleceń, jak i zaawansowanych funkcji PowerShell SSH, aby w pełni wykorzystać możliwości zdalnej administracji.
Czym jest SSH i dlaczego warto go używać w programie PowerShell?
SSH (Secure Shell) to bezpieczny protokół komunikacyjny, który umożliwia dostęp do zdalnych systemów i zarządzanie nimi za pośrednictwem terminala . Jego główną przewagą nad innymi protokołami, takimi jak Telnet, jest kompleksowe szyfrowanie, które zapewnia pełną ochronę wszystkich informacji, w tym nazw użytkowników i haseł, podczas transmisji.
PowerShell to z kolei zaawansowany interfejs wiersza poleceń systemu Windows , używany zarówno do zadań użytkownika, jak i administratora. Od kilku lat system Windows oferuje zintegrowanego natywnego klienta SSH, umożliwiając użytkownikom korzystanie z pełnej mocy protokołu SSH bezpośrednio z programu PowerShell, ułatwiając proste i bezpieczne administrowanie systemami Linux, Windows i innymi urządzeniami zdalnymi.
Wymagania wstępne dotyczące korzystania z protokołu SSH z poziomu programu PowerShell

Zanim zaczniesz zarządzać systemami zdalnymi z poziomu programu PowerShell, musisz sprawdzić podstawowe wymagania swojego komputera i komputera docelowego:
- Zaktualizowano program PowerShell: Aby móc korzystać ze wszystkich funkcji, zaleca się korzystanie z programu PowerShell w wersji 6 lub nowszej. W systemach Windows 10 i 11 jest on domyślnie zainstalowany, ale warto sprawdzić wersję za pomocą polecenia $PSVersionTable.PSVersion.
- Klient OpenSSH: Musisz mieć zainstalowanego klienta OpenSSH. Począwszy od systemów Windows 10 (kompilacja 1809) i Windows Server 2019 funkcja ta jest dostępna jako funkcja opcjonalna, ale w razie konieczności można ją zainstalować ręcznie.
- Serwer SSH włączony na komputerze zdalnym: System, z którym chcesz się połączyć, musi mieć włączony protokół SSH (może to być komputer z systemem Linux, Windows, urządzenie sieciowe itp.).
- Dostęp sieciowy: Komputer, z którego się łączysz, musi mieć dostęp do adresu IP lub domeny serwera SSH. Ważne jest, aby port 22 w Twojej zaporze był otwarty.
- Zezwolenia użytkownika: Choć uprawnienia administratora nie są zawsze niezbędne, w wielu sytuacjach będziesz potrzebować uprawnień rozszerzonych, aby zainstalować funkcje lub uzyskać dostęp do zdalnych systemów.
Sprawdź instalację i wersję OpenSSH w systemie Windows
Aby sprawdzić, czy klient OpenSSH jest dostępny w systemie, otwórz program PowerShell i uruchom polecenie:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
Status będzie wyświetlany jako zainstalowany lub nieobecny zarówno dla klienta, jak i serwera. Jeśli nie jest zainstalowany, możesz go dodać za pomocą:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Dla serwera, jeśli chcesz włączyć odbieranie połączeń SSH na swoim komputerze:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Po zainstalowaniu będziesz mógł używać polecenia „ssh” bezpośrednio w programie PowerShell lub wierszu poleceń.
Konfigurowanie i uruchamianie usługi SSH w systemie Windows
Jeśli chcesz akceptować połączenia SSH w systemie Windows, musisz się upewnić, że usługa jest uruchomiona. Aby uruchomić program i skonfigurować go tak, aby uruchamiał się automatycznie przy każdym rozruchu systemu, uruchom:
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Zaleca się sprawdzenie, czy istnieje już reguła zapory sieciowej zezwalająca na ruch przychodzący przez port 22 (SSH):
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
Pierwsze kroki: łączenie się przez SSH z poziomu programu PowerShell
Gdy wszystko już skonfigurujesz, możesz rozpocząć sesję SSH za pomocą prostego polecenia programu PowerShell:
ssh usuario@servidor
Pamiętaj, aby zastąpić „username” swoją nazwą użytkownika na komputerze zdalnym, a „server” adresem IP lub nazwą DNS. Podczas uruchamiania zostaniesz poproszony o zaakceptowanie klucza hosta (za pierwszym razem) i hasła.
Przykład rzeczywistego połączenia z serwerem Linux:
ssh [email protected]
Można również połączyć się z innymi systemami Windows z aktywnym serwerem SSH lub ze zgodnymi urządzeniami sieciowymi.
Zaawansowane parametry i uwierzytelnianie kluczem
Protokół SSH zapewnia dużą elastyczność w sposobie uwierzytelniania i nawiązywania połączenia. Najczęściej spotykane parametry to:
- -i Aby określić klucz prywatny do uwierzytelniania bez hasła:
ssh -i ruta/claves/id_rsa usuario@servidor - -p Aby określić port inny niż 22:
ssh -p 2222 usuario@servidor - -v dla trybu szczegółowego, przydatne przy debugowaniu.
W programie PowerShell możesz używać kluczy generowanych przez narzędzie ssh-keygen i kopiować je na zdalny serwer, aby zwiększyć bezpieczeństwo i wygodę, unikając konieczności podawania haseł.
Zarządzaj i automatyzuj zaawansowane sesje SSH za pomocą programu PowerShell
Oprócz podstawowych poleceń, PowerShell zawiera zaawansowane polecenia cmdlet do obsługi sesji SSH, takie jak New-PSSession, Enter-PSSession i Invoke-Command . Usprawnia to zdalną administrację, umożliwiając automatyzację skryptów i zadań konserwacyjnych bez konieczności ręcznego logowania się za każdym razem.
- Nowa sesja PSSession umożliwia utworzenie nowej sesji zdalnej poprzez podanie hosta, użytkownika i hasła lub klucza publicznego.
- Enter-PSSession umożliwia interaktywne dołączenie do sesji zdalnej i wykonywanie poleceń tak, jakbyś fizycznie znajdował się przy innym komputerze.
- Invoke-Command zdalnie wykonuje polecenia lub bloki skryptów, idealne do masowej administracji lub zadań zautomatyzowanych.
Przykład rozpoczęcia sesji:
New-PSSession -HostName 192.168.1.100 -UserName admin
Aby wejść do utworzonej sesji:
Enter-PSSession -Session $session
Możesz przesyłać pliki, monitorować procesy, automatyzować zadania i wiele więcej, a wszystko to przy użyciu wygodnego programu PowerShell.
Konfigurowanie serwera SSH w systemach Linux i macOS dla połączeń PowerShell
Za pomocą programu PowerShell można nie tylko zarządzać komputerami z systemem Windows, ale można również uzyskać dostęp do serwerów Linux i macOS. Na tych komputerach musisz upewnić się, że usługa OpenSSH jest zainstalowana i uruchomiona. Oto jak to się robi w Linuksie (na przykład Ubuntu):
sudo apt install openssh-client
sudo apt install openssh-server
Aby sprawdzić, czy jest aktywny:
sudo systemctl status sshd
W systemie macOS wystarczy włączyć zdalny dostęp w sekcji „Udostępnianie” – „Zdalne logowanie” w ustawieniach systemu.
W obu przypadkach możesz edytować plik sshd_config, aby umożliwić uwierzytelnianie za pomocą hasła lub klucza publicznego, a nawet ustawić program PowerShell jako powłokę domyślną.
Przydatne polecenia SSH z poziomu programu PowerShell
Po nawiązaniu połączenia możliwe jest wykonywanie szerokiej gamy poleceń zdalnego systemu. Kilka przydatnych przykładów do codziennego zarządzania:
- ls / reż:wyświetla zawartość katalogu
- cd:zmień katalog
- dotknij / Nowy przedmiot:tworzy nowe pliki
- rm / Usuń-element:usuwa pliki lub foldery
- mv / Przenieś-element:przenieś lub zmień nazwy plików
- Scp:przesyła pliki pomiędzy klientem a serwerem
- użytkownikradd:dodaj użytkowników
Polecenia te umożliwiają pełną administrację, automatyzację i tworzenie skryptów dla powtarzalnych zadań lub złożonych infrastruktur.
Zaawansowana konfiguracja i dostosowywanie sesji SSH w programie PowerShell
PowerShell SSH oferuje wiele zaawansowanych opcji umożliwiających dostosowanie środowiska do Twoich potrzeb:
- Edytuj plik konfiguracyjny w $env:ProgramData\ssh\sshd_config można dostroić uwierzytelnianie, algorytmy, reguły i inne.
- Zezwalaj lub blokuj dostęp za pomocą hasła lub klucza publicznego zgodnie z potrzebami bezpieczeństwa.
- Dodaj podsystemy, takie jak PowerShell aby sesje zdalne uruchamiały się bezpośrednio w programie PowerShell za pomocą polecenia „Podsystem powershell c:/progra~1/powershell/7/pwsh.exe -sshs -nologo”.
- Uruchom ponownie usługi i dostosuj zmienne środowiskowe aby wszystko działało poprawnie.
Pisarz z pasją zajmujący się światem bajtów i technologii w ogóle. Uwielbiam dzielić się swoją wiedzą poprzez pisanie i właśnie to będę robić na tym blogu, pokazywać Ci wszystkie najciekawsze rzeczy o gadżetach, oprogramowaniu, sprzęcie, trendach technologicznych i nie tylko. Moim celem jest pomóc Ci poruszać się po cyfrowym świecie w prosty i zabawny sposób.