SSH tunely umožňují bezpečně přistupovat ke vzdáleným službám přes šifrované spojení. Využívají existující SSH infrastrukturu, nevyžadují žádný extra software a dokážou zpřístupnit služby, které jsou jinak dostupné pouze z interní sítě. Prakticky nahrazují VPN pro jednoduché scénáře přístupu k databázím, webovým aplikacím nebo administračním rozhraním za firewallem.
Local forwarding¶
ssh -L 5433:localhost:5432 user@db-server
ssh -L 8080:internal-app:80 user@bastion
Local forwarding otevře port na vašem lokálním stroji a přesměruje provoz přes SSH na cílový server. První příklad zpřístupní PostgreSQL na db-serveru jako localhost:5433. Druhý příklad přes bastion host zpřístupní interní aplikaci. Výhodou je, že cílová služba nemusí být dostupná z internetu — stačí, aby k ní měl přístup SSH server.
Remote forwarding¶
ssh -R 8080:localhost:3000 user@public-server
Remote forwarding funguje opačně — zpřístupní lokální službu přes vzdálený server. Typické využití: máte vývojový server za NATem a chcete ho dočasně zpřístupnit kolegovi přes veřejný server. Port 3000 na vašem stroji bude dostupný jako port 8080 na public-serveru.
Dynamic (SOCKS)¶
ssh -D 1080 user@ssh-server
curl --socks5 localhost:1080 http://internal.local
Dynamic forwarding vytvoří SOCKS proxy, přes který lze směrovat libovolný provoz. Prohlížeč nebo aplikace nakonfigurovaná na SOCKS proxy localhost:1080 bude přistupovat k síti z perspektivy SSH serveru. Užitečné pro přístup k celé interní síti bez nutnosti vytvářet tunel pro každou službu zvlášť.
Jump host¶
ssh -J bastion user@internal-server
# ~/.ssh/config
Host internal-\*
ProxyJump bastion
Jump host (bastion) je prostředník pro přístup do interní sítě. SSH config s ProxyJump umožňuje transparentní připojení přes bastion — stačí ssh internal-server a SSH automaticky projde přes bastion.
Trvalé tunely¶
autossh -M 0 -f -N -L 5433:localhost:5432 user@db-server
Pro produkční použití je autossh nezbytný — automaticky restartuje tunel při výpadku spojení. Alternativně vytvořte systemd service unit pro trvalý tunel s automatickým restartem a logováním.
SSH tunely = bezpečný přístup¶
Pro jednoduché scénáře SSH tunely nahrazují VPN. Pro složitější topologie nebo přístup celého týmu zvažte WireGuard nebo Tailscale.