In /etc/ssh/sshd
için Bilgisayar B kümesi:
AllowTcpForwarding yes
TCPKeepAlive yes
Gönderen Bilgisayar A :
$ ssh -R 2222:localhost:22 ip.of.computer.b
Gönderen Bilgisayar B :
$ ssh localhost -p 2222
2222'nin seçtiğim keyfi bir yüksek bağlantı noktası numarası olduğuna dikkat edin. Bilgisayar B üzerindeki bu port daha sonra Bilgisayar A'da port 22'ye başlatılan SSH bağlantısı üzerinden tünellenecektir. Birden fazla makineniz varsa, her makine için farklı bir port kullanmanız gerekir.
Kullanım durumunuz için bunu bir betikten çalıştırmak isteyeceksiniz, böylece bunu bir daemon yapabilir ve bağlantı kesilirse periyodik olarak yeniden bağlanmayı deneyebilirsiniz. Muhtemelen sadece bir kabuk ile özel bir hesap isteyeceksiniz /bin/true
üzerinde Bilgisayar B gelen bağlantıları işlemek için. Daha sonra, her makine için "ev aramasına" izin verilen tek bir anahtar veya birden çok anahtar ayarlayabilirsiniz.
On Bilgisayar A bulabilceğini -n
, -N
ve -T
sadece tünel açmak, herhangi bir uzak çalıştırmayı, değil (arka planda çalışabilmesi için) ve bir tty oluşturmaz kullanışlı seçenekler yerel girişten kesmek için.
Bir daemon yaratmanın en normal yöntemleri böyle bir ağ tüneli kurmakla pek işe yaramaz. Ağ bağlantısındaki bir sorun, geçmesi için duvarı yıkmaya çalışmasını sağlayacaktır. Beklemek için bir uyku ile basit bir döngü hile yapmalıdır. On dakika güzel bir sayıdır, çünkü bir sorunla karşılaşmazsa ağı ve günlük dosyalarını girişimlerle ( Bilgisayar B'nin çevrimdışı olması gibi ) değil, ancak bağlantı kesilirse yine de oldukça hızlı bir şekilde geri almanızı sağlar.
#/bin/sh
while true; do
sleep $((60*10))
ssh -nNT -R 2222:localhost:22 ip.of.computer.b
done
Bunun gibi bir komut dosyası önyüklemede çalıştırılabilir /etc/rc.local
. Makinede ilk oturum açışınız Bilgisayar A önyüklemesinden yaklaşık on dakika sonra başlayacaktır .