penjelasan ssh tunneling

8

Saya punya pertanyaan tentang tunneling ssh. Saya sudah membaca artikel ini

Saya ingin membuat penerusan X berfungsi dan menjalankan beberapa aplikasi X di rumah dan menampilkannya di sistem jarak jauh:

 ssh -X -R 5555:localhost:22 [email protected] -N

Pada jarak jauh:

 ssh -X -p 5555 [email protected]

Kemudian di rumah:

 //configure sshd to listen on 5555
 ssh [email protected]
 //here run some app

Haruskah ini berhasil?

wawa235
sumber
Silakan coba alih-alih bertanya apakah itu akan berhasil.
Wutaz
Ya itu selalu yang terbaik untuk mencoba sesuatu dan kemudian jika tidak berhasil tanyakan mengapa.
slm
Sepertinya Anda melakukannya mundur .. "normal" adalah untuk menjalankan di remote dan menampilkannya secara lokal. jika Anda ingin ditampilkan pada remote, beri tahu kami tentang jaringan Anda, mungkin sederhana dan bahkan tidak perlu ssh.
Skaperen

Jawaban:

9

Saya telah menggambar beberapa sketsa

Mesin, tempat perintah ssh tunnel diketik disebut »host Anda« .

ssh tunnel mulai dari lokal


ssh tunnel mulai dari jarak jauh

pengantar

  1. lokal: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHostberarti: terhubung dengan ssh ke connectToHost, dan meneruskan semua upaya koneksi ke port lokal sourcePort ke onPortmesin yang dipanggil forwardToHost, yang dapat dijangkau dari connectToHostmesin.

  2. terpencil: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHostberarti: terhubung dengan ssh ke connectToHost, dan meneruskan semua upaya koneksi ke porta jarak jauh sourcePort ke onPortmesin yang disebut forwardToHost, yang dapat dijangkau dari mesin lokal Anda.

Contoh anda

Nah, jika Anda hanya ingin membuat penerusan X berfungsi, yaitu menjalankan beberapa aplikasi X di komputer di rumah dan membuatnya ditampilkan di sistem jarak jauh (sebut saja komputer berfungsi, karena mungkin di tempat kerja Anda), maka Anda mungkin tidak perlu terowongan ssh sama sekali.

Mulai aplikasi X tanpa terowongan

Bisakah Anda ssh dari komputer kerja ke komputer di rumah? Jika demikian, ketika Anda duduk di komputer kantor dan ingin memulai aplikasi X yang berjalan di komputer rumah Anda tetapi ditampilkan di komputer kantor Anda Anda, Anda harus mengetik (di komputer kantor):

ssh -X homeuser @ homecomputer firefox

Ini akan memulai firefox di komputer di rumah Anda dan menampilkannya di mesin tempat Anda mengetik perintah ini, misalnya komputer kerja Anda.

Komputer tersembunyi membutuhkan terowongan

Ini adalah gambar nomor 3 dari sketsa saya. Banyak kali komputer di rumah tidak dapat dijangkau langsung dari internet, karena berada di belakang firewall atau disembunyikan melalui NAT (dari router). Maka Anda bisa menggunakan terowongan.

Di komputer rumah biru Anda ( yourhost) Anda mengetik:

ssh -R 5555:localhost:22 remoteuser@remotehost

di mana 5555port hijau dan 22ist port pink di gambar.

Jika Anda sekarang sedang bekerja, di remotehost, dan terhubung ke port hijau 5555, koneksi Anda akan diarahkan / diteruskan ke port pink komputer rumah Anda localhost(yaitu komputer rumah biru Anda sendiri). Sekarang Anda harus mengetik di komputer kantor Anda:

ssh -X -p 5555 homeuser@localhost firefox

yang akan memulai firefox di komputer di rumah Anda ( yourhost) dan menampilkannya di mesin tempat Anda mengetik perintah ini, mis. komputer kerja Anda ( remotehost).

erik
sumber
1

Anda perlu menentukan tampilan jarak jauh yang ingin Anda teruskan. Pada jarak jauh:

DISPLAY=:0 ssh -X -p 5555 user@localhost # not sure why you used 192.168.1.2

Untuk meneruskan :0tampilan.

Kemudian di shell itu (sekarang berjalan di mesin rumah Anda), jalankan:

echo "$DISPLAY"

untuk mencari tahu apa tampilan yang diteruskan. Itu akan menjadi sesuatu seperti localhost:10, yang berarti Anda perlu melakukan koneksi TCP pada port 6010 untuk terhubung ke tampilan :0pada mesin jarak jauh ( :0artinya menyambung ke beberapa soket domain Unix dalam sesuatu seperti /tmp/.X11-unix)

Kemudian untuk aplikasi pada mesin Anda untuk ditampilkan pada tampilan server jarak jauh, hanya masalah untuk memberitahu mereka untuk menggunakan localhost:10:

DISPLAY=localhost:10 xlogo

contohnya.

Perhatikan bahwa, itu adalah terowongan di atas terowongan.

Stéphane Chazelas
sumber