Dalam /etc/ssh/sshd
untuk set B Komputer :
AllowTcpForwarding yes
TCPKeepAlive yes
Dari Komputer A :
$ ssh -R 2222:localhost:22 ip.of.computer.b
Dari Komputer B :
$ ssh localhost -p 2222
Perhatikan bahwa 2222 adalah nomor port-tinggi sewenang-wenang yang saya pilih. Port pada Komputer B kemudian akan disalurkan kembali melalui koneksi SSH yang diinisialisasi pada Komputer A ke port 22. Jika Anda memiliki beberapa mesin, Anda harus menggunakan port yang berbeda untuk setiap mesin.
Untuk kasus penggunaan Anda, Anda mungkin ingin menjalankan ini dari skrip sehingga Anda dapat menjadikannya sebagai daemon dan secara berkala mencoba menyambung kembali jika tautannya jatuh. Anda mungkin ingin akun khusus dengan cangkang /bin/true
di Komputer B untuk menangani koneksi yang masuk. Anda kemudian dapat mengatur satu tombol atau beberapa kunci untuk setiap mesin yang diizinkan untuk "menelepon ke rumah".
Pada Komputer A Anda mungkin menemukan -n
, -N
dan -T
opsi berguna untuk memutuskan sambungan dari input lokal (sehingga dapat berjalan di latar belakang), tidak mencoba menjalankan perintah jarak jauh, cukup buka terowongan, dan tidak membuat tty.
Sebagian besar metode normal untuk memunculkan daemon tidak berfungsi dengan baik dengan mengatur terowongan jaringan seperti ini. Masalah dalam konektivitas jaringan akan membuatnya mencoba untuk mengalahkan dinding untuk bisa melewati. Lingkaran sederhana dengan tidur menunggu harus melakukan trik. Sepuluh menit adalah angka yang bagus karena tidak membanjiri jaringan dan mencatat file dengan upaya jika ada masalah (seperti Komputer B sedang offline) tetapi masih membuat Anda kembali dengan cepat jika koneksi terputus.
#/bin/sh
while true; do
sleep $((60*10))
ssh -nNT -R 2222:localhost:22 ip.of.computer.b
done
Sebuah skrip seperti itu dapat dijalankan diluncurkan saat boot /etc/rc.local
. Perubahan pertama Anda untuk masuk ke mesin akan mulai sekitar sepuluh menit setelah Computer A melakukan booting.