Co to jest ~/.ssh/config i po co go zakładać?
Jeśli łączysz się po SSH z więcej niż jednym serwerem, zapewne wpisujesz w kółko coś takiego: `ssh -i ~/.ssh/work_key -p 2222 deploy@10.0.0.20`. Jeden plik `~/.ssh/config` zamienia to wszystko w `ssh prod`.
Ten kreator pisze ten plik za Ciebie. Wybierz preset (serwer produkcyjny, bastion, GitHub, proxy SOCKS, kontener developerski...), dopasuj pola, a prawa kolumna pokaże dokładny tekst do wklejenia w `~/.ssh/config`. Każda opcja ma podpowiedź zwykłym językiem, nie musisz pamiętać, którą wielką literą OpenSSH chce zobaczyć dane słowo.
Wszystko działa w przeglądarce: bez prawdziwych kluczy, bez wysyłania niczego, bez konta. Wynik to czysta konfiguracja OpenSSH, identyczna jak pisana ręcznie.
Jak używać
- Zacznij od presetu (Serwer produkcyjny, Bastion, GitHub, SOCKS proxy...). Formularz wypełni sensowne wartości, które potem zmienisz.
- Wpisz alias hosta (krótka nazwa, którą będziesz pisać po `ssh`), potem HostName (prawdziwy adres albo IP), User i Port, jeśli nie jest to 22.
- Rozwiń Tożsamość i wskaż IdentityFile na swój klucz prywatny, np. `~/.ssh/id_ed25519`. Włącz IdentitiesOnly, żeby SSH nie próbował każdego klucza z agenta.
- Potrzebujesz hosta pośredniego? Rozwiń Proxy / jump i wpisz `user@bastion` w ProxyJump. SSH automatycznie połączy się przez bastion.
- Dla przekierowania portów rozwiń Forwarding i dopisz linie `8080 localhost:80` do LocalForward (zdalny port widoczny lokalnie) albo RemoteForward (lokalny port widoczny na serwerze).
- Kliknij Kopiuj w panelu podglądu, wklej do `~/.ssh/config` (załóż plik, jeśli go nie ma) i uruchom `chmod 600 ~/.ssh/config`, żeby SSH zaufał plikowi.
- Dodawaj kolejne wpisy plusem na górze. Podgląd skleja je w jeden plik, w kolejności, w jakiej pojawiają się na liście.
Kiedy się przydaje
Siedem konkretnych sytuacji, w których porządny `ssh config` realnie oszczędza czas:
- Codziennie logujesz się na produkcję. Zamiast `ssh -i ~/.ssh/prod_ed25519 -p 22 deploy@1.2.3.4` piszesz `ssh prod`. Działa autouzupełnianie, działa historia, działają skrypty owinięte wokół ssh.
- Cel jest za bastionem. Ustawiasz `ProxyJump` na hoście wewnętrznym i SSH przeskakuje przez bastion automatycznie. Koniec z ręcznym dwustopniowym łączeniem.
- Masz osobne klucze do GitHuba i GitLaba. Przypinasz `IdentityFile` per host, dzięki czemu właściwy klucz idzie do właściwego serwisu. Znika błąd „too many authentication failures", gdy SSH próbuje wszystkich kluczy z agenta.
- Potrzebujesz lokalnego portu do developmentu. Dodajesz `LocalForward 5432 localhost:5432` i Postgres z serwera ląduje na Twoim laptopie. Bez VPN.
- Chcesz proxy SOCKS do przeglądania przez serwer. `DynamicForward 1080` plus Firefox ustawiony na localhost:1080 i Twój ruch wychodzi z maszyny zdalnej. Przydatne do dashboardów ograniczonych regionem.
- Zarządzasz 30+ hostami. Grupujesz je wzorcami `Host prod-*` (ten kreator pisze blok per host, ale format pliku wspiera dziury, doklej wzorce ręcznie u góry).
- Chcesz pokazać lokalną usługę światu (taki ręczny ngrok). `RemoteForward 8080 localhost:3000` na publicznie dostępnym serwerze i port 3000 z laptopa wychodzi pod port 8080 na tym serwerze.