HELPER VPS

Połączenie z VPS przez SSH z Windows przez PowerShell i PuTTY

Ze zwykłym komputerem z Windows od razu połączysz się z serwerem Linux, niczego nie kupując. Opisujemy oba sposoby: wbudowane polecenie ssh w PowerShell i sprawdzony od lat PuTTY.

Co przygotować przed połączeniem

SSH to sposób wymiany poleceń z serwerem przez szyfrowany kanał. Linux VPS powstaje z już włączonym serwerem SSH, domyślny port to 22. Do połączenia potrzebujesz tylko trzech rzeczy.

  • Adres IPv4 serwera: widoczny w przeglądzie na stronie serwera.
  • Nazwa użytkownika: na początek użyj root.
  • Hasło root: kliknij „Pokaż” w polu hasła root na stronie serwera. Jest widoczne przez 7 dni od ustawienia, więc zapisz je w menedżerze haseł.

Łącz się, gdy status serwera zmieni się na „Działa”. Jeśli serwer jest jeszcze tworzony lub reinstalowany, poczekaj chwilę na koniec instalacji. W poleceniach poniżej zastąp YOUR_SERVER_IP adresem IPv4 swojego serwera.

Sposób 1. Połączenie wbudowanym poleceniem ssh w PowerShell

W Windows 10 od wersji 1809 i w Windows 11 klient OpenSSH jest już wbudowany. Bez dodatkowej instalacji w PowerShell lub Windows Terminal działa to samo polecenie ssh co w macOS i Linux.

Krok 1. Otwórz PowerShell

Wyszukaj w menu Start PowerShell lub Terminal i otwórz go. Sprawdź poleceniem poniżej, czy ssh jest gotowy. Jeśli pojawi się jedna linia z wersją OpenSSH, wszystko gotowe.

PowerShell
ssh -V

Jeśli zamiast wersji pojawi się komunikat, że nie znaleziono polecenia, dodaj klienta OpenSSH w funkcjach opcjonalnych w ustawieniach. W Windows 11 to „Ustawienia > System > Funkcje opcjonalne”, w Windows 10 „Ustawienia > Aplikacje > Funkcje opcjonalne”. Możesz też dodać go jednym poleceniem poniżej w PowerShell z uprawnieniami administratora.

PowerShell (administrator)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Krok 2. Połącz się z serwerem

PowerShell
ssh root@YOUR_SERVER_IP

Przy pierwszym połączeniu pojawi się pytanie, czy zapisać odcisk serwera. Wpisz yes i naciśnij Enter: odcisk zapisze się w pliku known_hosts na Twoim komputerze i pytanie nie pojawi się więcej. Następnie, gdy pojawi się prośba o password, wklej hasło root skopiowane ze strony serwera.

W oknach Windows Terminal i PowerShell wklejasz prawym przyciskiem myszy lub skrótem Ctrl+Shift+V. Hasło podczas wpisywania nie jest widoczne na ekranie, to normalne, więc wklej je raz i naciśnij Enter. Gdy znak zachęty przyjmie postać root@nazwa-serwera:~#, połączenie działa.

Krok 3. Wykonaj pierwsze polecenia

Zaraz po połączeniu warto zaktualizować system. W Ubuntu i Debian wykonaj apt update && apt upgrade -y, w AlmaLinux i Rocky Linux dnf upgrade -y. Tworzenie zwykłego użytkownika i kolejność aktualizacji opisuje szczegółowo poradnik pierwszego logowania. Po skończonej pracy zakończ sesję poleceniem exit.

Logowanie kluczem SSH bez hasła z PowerShell

Z kluczem SSH nie musisz za każdym razem wklejać hasła, a ochrona przed odgadywaniem hasła jest znacznie mocniejsza. W Windows klucz tworzysz tym samym poleceniem ssh-keygen.

PowerShell
ssh-keygen -t ed25519

Gdy pojawi się pytanie o miejsce zapisu, naciśnij Enter, aby zostawić domyślne; frazę hasła klucza (passphrase) zalecamy ustawić. W folderze C:\Users\YourName\.ssh powstaną dwa pliki. id_ed25519 to klucz prywatny, który zostaje tylko na Twoim komputerze, a id_ed25519.pub to klucz publiczny, który trafia na serwer. Wyświetl i skopiuj klucz publiczny poleceniem poniżej.

PowerShell
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

Dla nowego serwera wklej klucz publiczny w menu kluczy SSH na koncie i wybierz go przy tworzeniu serwera: logowanie kluczem działa od samego początku. Kolejne kroki opisuje poradnik kluczy SSH. Na już działający serwer klucz publiczny dodasz jednym poleceniem poniżej. Hasło root wpiszesz przy tym tylko raz.

PowerShell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@YOUR_SERVER_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Jeśli masz kilka serwerów, wygodnie zapisać parametry połączenia pod nazwami. Utwórz w Notatniku plik C:\Users\YourName\.ssh\config i wpisz do niego linie jak poniżej, a połączysz się jednym słowem ssh myvps.

C:\Users\YourName\.ssh\config
Host myvps
    HostName YOUR_SERVER_IP
    User root
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 30

ServerAliveInterval 30 wysyła sygnał co 30 sekund, więc połączenie nie zrywa się, nawet gdy na chwilę odejdziesz.

Sposób 2. Połączenie przez PuTTY

PuTTY to darmowy program SSH od lat używany w Windows. Jeśli wygodnie Ci zapisywać połączenia pod nazwami i otwierać je dwuklikiem, PuTTY świetnie się sprawdzi. Pobierz 64-bitowy instalator (MSI) z oficjalnej strony (putty.org): razem z PuTTY zainstaluje się PuTTYgen do tworzenia kluczy.

Krok 1. Wpisz i zapisz parametry połączenia

  • Po uruchomieniu PuTTY otwiera się ekran Session.
  • Wpisz adres IPv4 serwera w Host Name, 22 w Port, a Connection type zostaw jako SSH.
  • Po lewej w Connection > Data wpisz root w polu Auto-login username.
  • Jeśli w Connection wpiszesz 30 w polu Seconds between keepalives, połączenie utrzyma się dłużej.
  • Wróć do ekranu Session, wpisz nazwę w Saved Sessions (na przykład myvps) i kliknij Save.

Krok 2. Połącz się

Wybierz zapisaną nazwę i kliknij Open. Za pierwszym razem pojawi się okno sprawdzenia odcisku serwera; kliknij Accept, a odcisk się zapisze. Gdy pojawi się pole password, wklej hasło root prawym przyciskiem myszy i naciśnij Enter. W PuTTY prawy przycisk wkleja tekst, a zaznaczenie tekstu myszą od razu go kopiuje.

Krok 3. Klucz SSH przez PuTTYgen

Otwórz PuTTYgen, wybierz typ klucza EdDSA (Ed25519), kliknij Generate i poruszaj myszą nad pustym polem, aż pasek się zapełni. Ustaw Key passphrase i zapisz klucz prywatny do pliku .ppk przyciskiem Save private key.

Linia w polu Public key for pasting into OpenSSH authorized_keys file w górnej części okna to klucz publiczny. Dodaj tę linię w menu kluczy SSH na koncie lub wklej ją na koniec pliku ~/.ssh/authorized_keys na już działającym serwerze. Następnie w PuTTY w sekcji Connection > SSH > Auth > Credentials wybierz plik .ppk w polu Private key file for authentication i ponownie kliknij Save na ekranie Session: od teraz logowanie będzie bez hasła.

Aby używać w PuTTY klucza OpenSSH utworzonego w PowerShell, wczytaj id_ed25519 przez Conversions > Import key w PuTTYgen i zapisz go jako .ppk. Jeden klucz posłuży w obu programach.

Przesyłanie plików między Windows a serwerem

Razem z ssh w PowerShell jest też polecenie scp. Służy do wysyłania pliku z komputera na serwer lub pobierania pliku z serwera na komputer.

PowerShell
scp .\site.zip root@YOUR_SERVER_IP:/root/
scp root@YOUR_SERVER_IP:/root/backup.tar.gz .\

Aby przesłać cały folder, dodaj scp -r. Jeśli wolisz przeciągać pliki jak w Eksploratorze, wpisz ten sam adres, port 22 i użytkownika root w programie SFTP, na przykład WinSCP. WinSCP potrafi od razu wczytać sesje i klucze .ppk zapisane w PuTTY.

Co sprawdzić, gdy nie możesz się połączyć

Zwykle przyczyna tkwi w jednym z czterech punktów poniżej, a sprawdzając je po kolei, szybko połączysz się ponownie.

  • Connection timed out: najpierw sprawdź, czy serwer ma status „Działa”, a adres IP jest poprawny. Jeśli włączona jest zapora, musi zezwalać na SSH (port 22). Sieci w biurze lub szkole czasem blokują port 22, więc spróbuj innej sieci, na przykład udostępniania internetu z telefonu.
  • Permission denied: skopiuj hasło ponownie i wklej je raz. Sprawdź, czy nie skopiowały się zbędne spacje na początku lub na końcu. Jeśli minęło 7 dni i hasło nie jest już widoczne, uzyskaj nowe przez utworzenie nowego hasła root na stronie serwera.
  • REMOTE HOST IDENTIFICATION HAS CHANGED: ten komunikat pojawia się po reinstalacji serwera, bo odcisk serwera tworzony jest od nowa. Usuń zapisany stary odcisk poleceniem ssh-keygen -R YOUR_SERVER_IP i połącz się ponownie.
  • Connection refused: usługa SSH na serwerze jest zatrzymana lub port został zmieniony. Jeśli zmieniałeś port, łącz się poleceniem ssh -p PORT root@YOUR_SERVER_IP.

Tworzenie nowego hasła i łączenie po reinstalacji opisuje poradnik reinstalacji i hasła root. Po udanym połączeniu otwórz tylko potrzebne porty według poradnika podstawowej zapory.

Co warto zrobić dalej

Gdy logowanie kluczem SSH działa, wyłącz logowanie hasłem, aby lepiej chronić serwer. Najpierw upewnij się, że logowanie kluczem działa, potem w pliku /etc/ssh/sshd_config na serwerze zmień PasswordAuthentication na no i uruchom ponownie usługę SSH. W Ubuntu i Debian to systemctl restart ssh, w AlmaLinux systemctl restart sshd.

Jeśli planujesz uruchomić stronę lub aplikację, przejdź do poradnika instalacji Dockera lub poradnika instalacji WordPressa. Jeśli do pracy potrzebny jest właśnie pulpit Windows, lepiej sprawdzi się Windows VPS z połączeniem przez pulpit zdalny.

Przydatne poradniki na ten temat

Ustawienia, które warto zrobić po tym poradniku.

Wszystkie poradniki