Saya ingin membuka sesi desktop jarak jauh dari laptop saya ke desktop melalui terowongan SSH (terbalik) saya. Itu harus sederhana (atau setidaknya bisa dilakukan), bukan? Sampai sekarang saya telah menggunakan Team Viewer untuk masuk ke desktop jarak jauh. Saya ingin mencapai hasil yang serupa tanpa Penampil Tim.
Seperti inilah terowongan SSH saya:
laptop--->nat--->middleman<--nat<--desktop
Semua mesin menjalankan Linux (kebanyakan Kubuntu 12.04 atau OpenSuse 12.3). Saya tidak dapat mengubah port apa pun atau membuat perubahan konfigurasi pada router nat.
Saya akan menjelaskan terowongan SSH saya karena pemahaman yang tampaknya diperlukan dalam menyelesaikan masalah VNC / desktop jarak jauh yang merupakan jantung dari pertanyaan saya. Mengenai kaki ini:
middleman<--nat<--desktop
... di sini adalah bagaimana ia didirikan:
autossh -M 5234 -N -f -R 1234:localhost:22 [email protected]
Mengenai kaki ini:
laptop--->nat--->middleman
Saya dapat terhubung ke perantara sebagai berikut:
me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman
Namun, apa yang sebenarnya perlu saya lakukan adalah terhubung langsung ke desktop, bukan ke tengkulak. Untuk melakukan itu saya menggunakan netcat ("nc") pada perantara. Berdasarkan ini nc diperlukan. Jadi saya mengedit file konfigurasi SSH saya di laptop untuk menggunakan ProxyCommand dan nc:
me@laptop:~/.ssh$ nano config
Isinya adalah:
Host family_desktops
ProxyCommand ssh middleman_fqdn nc localhost %p
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
Di mana middleman_fqdn
seperti "middleman.com"
Lalu saya hanya terhubung ke "desktop" dalam satu langkah:
me@laptop:~$ ssh family_desktops -p 1234
(Saya mendapatkan pekerjaan ini berdasarkan bantuan di sini dan di sini dan pertanyaan terkait lainnya yang saya ajukan. Saya telah mengajukan banyak pertanyaan tentang topik ini karena saya telah bergulat dengannya selama berminggu-minggu.)
Dengan koneksi SSH ini saya mencapai shell yang berfungsi penuh pada komputer saya berlabel desktop
. Sempurna.
Sekarang saya hanya perlu solusi desktop jarak jauh seperti VNC (atau mirip TeamViewer) di atas terowongan SSH ini. Bagaimana?
Inilah yang saya coba sejauh ini:
perantara <- nat <- desktop
autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]
dengan koneksi yang dibuat:
x11vnc -autoport 5901
Saya menonton untuk memastikan terhubung ke port 5901, yang ia lakukan.
laptop ---> nat ---> perantara <- nat <- desktop
laptop ~ / .ssh / config:
Host family_desktops
ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
Pengaturan terowongan:
me@laptop:~$ sudo ssh family_desktops
Klien VNC:
connect to localhost:5901
Ini memberikan kesalahan "server tidak ditemukan"
Saya telah mencoba sejumlah variasi pada ProxyCommand, tidak ada satupun yang berhasil. Jelas, saya menebak parameter mana yang harus di ProxyCommand dan yang harus di baris perintah ssh. Saya dapat melihat beberapa masalah potensial dengan pengaturan saya, tetapi saya belum dapat menemukan apa yang akan membuat semuanya berfungsi.
PS Seperti yang disebutkan, saya telah mengajukan beberapa pertanyaan tentang ini. Beberapa dari mereka membawa saya lebih dekat ke solusi dan membentuk dasar dari pertanyaan saya saat ini. Lain dari pertanyaan saya sebelumnya tentang topik ini hanya menunjukkan ketidaktahuan dan ketidakmampuan saya untuk mengajukan pertanyaan dalam bentuk yang benar. Pada titik ini, pertanyaan ini menunjukkan kemampuan terbaik saya untuk menyatakan apa masalah saya dan apa solusi yang saya inginkan, tetapi beberapa pertanyaan saya yang lain masih terbuka juga. Inilah yang relevan.
sumber
desktop
berada di belakang router NAT dan dilaptop
belakang router NAT.Jawaban:
Bisakah Anda mencoba melakukan langkah kedua tanpa melakukan nc? Yaitu - lakukan VNC hanya dengan -L dan -R. Saya percaya masalahnya adalah sesi netcat Anda terhubung kembali ke yang sudah terbuka. Jadi ketika melakukan hal-hal VNC jangan gunakan netcat.
sumber
Alih-alih ProxyCommand, Anda harus mengatur "gatewayports ya" untuk perantara Anda sshd.conf.
Setelah Anda membuatnya berfungsi, pelajari lebih lanjut tentang pengaturan gatewayports yang lebih aman.
sumber