Yang Anda maksud adalah "SSH REMOTE FORWARDING", dan dijelaskan dengan benar di "man ssh ", tentang "-R " opsi.
> man ssh
[...]
-R [bind_address:]port:host:hostport
Specifies that the given port on the remote (server) host is to
be forwarded to the given host and port on the local side.
This works by allocating a socket to listen to port on the remote
side, and whenever a connection is made to this port, the
connection is forwarded over the secure channel, and a connection is
made to host port hostport from the local machine.
[...]
Dalam konteks Anda, di mana:
- Linux box A (LINUX_BOX_A) di dalam LAN di belakang firewall.
- server Linux B (SERVER_B) dengan IP tetap yang dapat diakses dari internet
Penerusan jarak jauh SSH dapat digunakan untuk menjangkau LINUX_BOX_A dari SERVER_B. Satu-satunya syarat adalah:LINUX_BOX_A HARUS dapat terhubung melalui SSH ke SERVER_B.
Untuk mencapai sasaran ini, Anda memerlukan:
- di LINUX_BOX_A:
LINUX_BOX_A:~ $ ssh -R 2222:localhost:22 [email protected]_B
ini akan membuka koneksi ssh dari LINUX_BOX_A ke SERVER_B yang akan digunakan untuk koneksi masuk jarak jauh.
Setelah koneksi ssh di atas dibuat, Anda dapat:
- pada SERVER_B:
SERVER_B:~ $ ssh -p 2222 [email protected]
koneksi ssh seperti itu, diluncurkan pada SERVER_B, akan diarahkan ke port 2222 yang mendengarkan di localhost yang ... diikat ke koneksi ssh sebelumnya. Jadi ini akan menjadi "koneksi ssh di dalam koneksi ssh lain".
Beberapa catatan tambahan:
-
pertimbangkan bahwa jika koneksi ssh pertama akan habis waktu dan/atau gagal karena alasan apa pun (termasuk:dimatikan oleh firewall lokal, karena tidak aktif), Anda tidak akan dapat meneruskan/melanjutkan dari jarak jauh/remotely_connect;
-
karena penting untuk membiarkan koneksi ssh pertama aktif untuk waktu yang sangat lama, mungkin berguna bagi Anda untuk meluncurkan ssh tersebut dalam sesi "layar"
Catatan terakhir:Jelas, semua hal di atas memiliki beberapa implikasi keamanan (berpotensi serius) yang berada di luar cakupan jawaban ini.