Co to jest SSH i dlaczego warto go używać?
Dwadzieścia lat temu Putty służyło wielu z nas jako brama do świata IRC – cyfrowych rozmów w czasie rzeczywistym, kanałów tematycznych i nocnych sesji z modemem. Choć dla wielu dziś brzmi to jak internetowy prehistoria, samo narzędzie przetrwało próbę czasu. Obecnie Putty i inne klienci SSH (jak Terminal czy MobaXterm) to podstawa pracy administratorów, developerów i wszystkich, którzy potrzebują bezpiecznego dostępu do serwera.
Współczesne SSH (Secure Shell) to znacznie więcej niż tylko “zdalne logowanie”. To szyfrowana linia, która łączy Cię z serwerem, jeśli chcesz zarządzać stroną WWW, wdrażać aplikacje lub przywracać porządek w katalogach. Czym jest, jaką pełni funkcję, dlaczego nie zastąpi FTP i czemu FTP nie zastąpi SSH - o tym w tym artykule, zapraszamy.
Co to jest SSH i dlaczego to takie ważne?
SSH to protokół, który pozwala Ci bezpiecznie połączyć się z innym komputerem przez internet – najczęściej z serwerem. Ten tunel jest szyfrowany, więc nikt nie przechwyci tego, co wpisujesz (np. hasła czy komend). A co możesz przez ten tunel robić?
- Zarządzać serwerem przez terminal – czyli wpisywać polecenia, jakbyś siedział fizycznie przed komputerem.
- Przesyłać pliki – np. backup strony lub aktualizacje.
- Tworzyć tunel (port forwarding) – by np. bezpiecznie połączyć się z bazą danych przez pośrednika.
Z technicznego punktu widzenia masz dwie strony:
- Klient SSH – to Twój komputer, np. z Putty albo wbudowanym terminalem.
- Serwer SSH – to serwer, do którego się logujesz (np. hosting SEOHOST, VPS, dedyk).
Aby połączyć się, potrzebujesz danych logowania i jednej z dwóch metod autoryzacji:
- Hasło – prostsza, ale mniej bezpieczna.
- Klucz SSH – para: klucz prywatny (u Ciebie) + klucz publiczny (na serwerze). Bezpieczniejsze i wygodne – zwłaszcza gdy logujesz się często lub automatyzujesz procesy.
Jak działa połączenie SSH krok po kroku?
Wyobraź sobie klucz i zamek. Klucz prywatny masz tylko Ty. Klucz publiczny wstawiasz raz do serwera. Gdy próbujesz się połączyć, serwer wysyła zagadkę (zaszyfrowany tekst). Twój komputer rozwiązuje ją przy pomocy klucza prywatnego i odsyła odpowiedź. Jeśli wszystko się zgadza – drzwi stoją otworem.
Z poziomu SSH możesz:
- Wykonać aktualizacje WordPressa komendą
wp core update - Sprawdzić miejsce na dysku:
df -h - Zarchiwizować katalog:
tar -czvf backup.tar.gz public_html - Edytować plik
.htaccess:nano .htaccess
Nie potrzebujesz myszki, panelu, logowania przez przeglądarkę. Wszystko masz w jednym oknie – terminala.
Jeśli interesuje Cię dostęp do SSH z poziomu panelu DirectAdmin, przeczytaj kolejne sekcje:
Po co mi SSH, skoro mam FTP, SFTP, FTPS... i WebFTP?
No właśnie – bardzo dobre pytanie. Jeśli masz dostęp do serwera przez WebFTP w DirectAdmin albo nawet klasyczne FTP/SFTP, to teoretycznie możesz zrobić wszystko: przesłać pliki, pobrać je, nawet edytować, a w WebFTP nawet pracować z archiwami .ZIP (przydatne i wygodne, aby szybko, np. rozpakować instalację WordPress). Ale tylko teoretycznie.
Praktyka szybko pokazuje ograniczenia. Spójrz:
FTP vs SFTP vs SSH
- FTP – stary protokół, działa, ale wszystko leci „na żywca” – czyli dane, hasła i pliki nie są szyfrowane. Totalnie nie polecam.
- SFTP / FTPS – bezpieczne wersje FTP, czyli transfer + szyfrowanie. Dobre do przesyłania plików, ale... i tylko do tego.
- WebFTP (DirectAdmin) – fajny na szybko, klikasz w przeglądarce, przeciągasz, wypakowujesz ZIP-a i działa. Tylko że:
- nie wszystko zrobisz (np. nie wypakujesz tar.gz tak swobodnie),
- nie da się tam odpalić skryptu,
- jak plik waży 2 GB – powodzenia z ładowaniem w przeglądarce.
Kiedy FTP/WebFTP przestaje wystarczać?
- Chcesz zainstalować WordPressa przez WP-CLI
- Chcesz wypakować archiwum
.tar.gzbez limitów czasowych i błędów - Chcesz sprawdzić logi serwera, czyścić cache, ubijać procesy
- Masz automatyczny backup w CRON-ie
- WordPress padł i nie da się go naprawić z poziomu panelu
FTP to tylko sposób na przerzucenie plików – nic więcej. WebFTP to sympatyczna nakładka, ale bez większych mocy/umiejętności. SSH to terminal – klucz do backendu serwera, nie tylko do katalogu public_html.
SSH ≠ SFTP
To jest też dosyć ciekawy wątek. Spójrz, jak pokazaliśmy wyżej SSH (Secure Shell) to protokół dostępu do serwera z poziomu terminala. Dzięki niemu możesz się zalogować na konto na serwerze i wykonywać polecenia, tak jakbyś siedział przy jego fizycznym ekranie. To Twój zdalny pulpit, ale tekstowy.
I teraz ciekawostka. SSH (Secure Shell) to z kolei protokół dostępu do serwera z poziomu terminala. Dzięki niemu możesz się zalogować na konto na serwerze i wykonywać polecenia, tak jakbyś siedział przy jego fizycznym ekranie. To Twój zdalny pulpit, ale tekstowy. SFTP to funkcja zbudowana na bazie SSH, ale sama w sobie jest ograniczona do przerzucania plików.
Jednak, gdy wchodzisz przez SSH (np. przez Putty, Terminal, MobaXterm) – masz w rękach pełen dostęp do konsoli. Natomiast jak używasz SFTP (np. przez FileZilla, WinSCP) – masz tylko dostęp do plików, tak jak przez FTP, ale bezpiecznie.
Przykładowe komendy SSH
SSH i komendy, wspominaliśmy o nich kilka razy w tym poradniku, dlatego przejdźmy do nich. Bo właśnie to odróżnia SSH od WebFTP czy SFTP – możliwość wydawania poleceń bezpośrednio na serwerze.
Przykładowo, po połączeniu się przez SSH do serwera (np. komendą ssh user@adres_ip), możesz:
- tworzyć i usuwać pliki i katalogi przez SSH (
mkdir,rm,touch), - edytować konfigurację aplikacji (
nano,vim,vi), - uruchamiać procesy lub skrypty (
node app.js,npm install,bash backup.sh), - instalować pakiety przez SSH (
apt install,yum update,npm,pip), - sprawdzać status systemu (
htop,top,df -h,uptime), - przeglądać logi (
tail -f,less,cat).
Powyższe komendy to tylko wstęp do tego, co możesz zrobić przez SSH. Jeśli chcesz poznać:
- pełną listę najczęściej używanych komend,
- polecenia dla osób zarządzających WordPressem (np. instalacja wtyczek, migracje, backupy przez terminal),
- oraz wskazówki, które z nich warto znać na shared-hostingu, a które tylko na VPS lub dedyku,
to sprawdź nasz osobny poradnik: Najważniejsze komendy SSH – od podstaw po WordPress