03 listopada 2013 blog ssh

Jak się połączyć przez ssh niezależnie od sieci, NAT, numeru IP, etc.

Konfiguracja

Pierwszym krokiem jest skonfigurowanie połączenia na zdalny komputer przy użyciu kluczy. Postępujemy według poradnika.

Do /etc/rc.local, lub innego skryptu uruchamiającego się przy starcie komputera, dodajemy:

sudo -u pi /usr/bin/screen -m -d -S tunel9050 /home/pi/bin/tunel9050.sh &

Oczywiście zamiast użytkownika pi podajemy swój login.

Skrypt

Skrypt /home/pi/bin/tunel9050.sh, który automatycznie będzie się łączył na wskazany serwer:

#! /usr/bin/env bash

while true; do
    echo "`date`, sleep and connect..."
    sleep 5 || exit
    ssh dmn@ssh.server.net -o ServerAliveInterval=4 -o ServerAliveCountMax=2 -g -R 4422:127.0.0.1:22 -D 9050
done

Dzięki temu po starcie będzie nawiązywane połączenie do zdalnego komputera.

Na lokalnym porcie 9050 będziemy mieli możliwość łączyć się przez SOCKS proxy.

Wszelkie połączenia na port 4422 zdalnego komputera będą automatycznie przekierowywane na nasz lokalny komputer. Otwarcie sesji ssh następi po wydaniu polecenia:

ssh pi@ssh.server.net -p 4422