GNU/Linux >> Belajar Linux >  >> Linux

Ssh – Remote Desktop Melalui Terowongan Terbalik Ssh Untuk Menggantikan Teamviewer?

Saya ingin membuka sesi desktop jarak jauh dari laptop saya ke desktop melalui terowongan SSH (terbalik). Itu seharusnya 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 Team Viewer.

Inilah tampilan 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 apa pun pada router nat.

Saya akan menjelaskan terowongan SSH saya karena pemahaman yang tampaknya diperlukan dalam memecahkan masalah VNC / desktop jarak jauh yang merupakan inti dari pertanyaan saya. Mengenai kaki ini:

middleman<--nat<--desktop

…inilah cara pembuatannya:

autossh -M 5234 -N -f -R 1234:localhost:22 [email protected]

Mengenai kaki ini:

laptop--->nat--->middleman

Saya dapat terhubung ke perantara sebagai berikut:

[email protected]:~$ ssh -i ~/.ssh/id_rsa [email protected]  

Namun, yang sebenarnya perlu saya lakukan adalah terhubung langsung ke desktop, bukan ke perantara. Untuk melakukan itu saya menggunakan netcat (“nc”) pada perantara. Berdasarkan ini tampaknya nc diperlukan. Jadi saya mengedit file konfigurasi SSH saya di laptop untuk menggunakan ProxyCommand dan nc:

[email protected]:~/.ssh$ nano config

Isinya adalah:

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Dimana middleman_fqdn seperti “perantara.com”

Kemudian saya hanya terhubung ke "desktop" dalam satu langkah:

[email protected]:~$ ssh family_desktops -p 1234

(Saya mendapatkan ini bekerja 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 di komputer saya berlabel desktop . Sempurna.

Sekarang saya hanya membutuhkan solusi desktop jarak jauh seperti VNC (atau mirip TeamViewer) melalui terowongan SSH ini. Bagaimana?

Inilah yang telah 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 itu terhubung ke port 5901, dan memang begitu.

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

Penyiapan terowongan:

[email protected]:~$ 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 ada di ProxyCommand dan mana yang harus ada di baris perintah ssh. Saya dapat melihat beberapa masalah potensial dengan penyiapan saya, tetapi saya belum dapat mengetahui apa yang akan membuat semuanya berfungsi.

Terkait:Bunuh semua pekerjaan latar belakang?

P.S. Seperti yang disebutkan, saya telah mengajukan beberapa pertanyaan tentang ini. Beberapa di antaranya membawa saya lebih dekat ke solusi dan membentuk dasar dari pertanyaan saya saat ini. Pertanyaan saya sebelumnya tentang topik ini hanya menunjukkan ketidaktahuan dan ketidakmampuan saya untuk mengajukan pertanyaan dalam bentuk yang benar. Pada titik ini, pertanyaan ini mewakili kemampuan terbaik saya untuk menyatakan apa masalah saya dan apa solusi yang saya inginkan, tetapi beberapa pertanyaan saya yang lain masih terbuka juga. Inilah salah satu yang relevan.

Jawaban yang Diterima:

Bisakah Anda mencoba melakukan langkah kedua tanpa melakukan nc? Yaitu – lakukan VNC hanya dengan -L dan -R. Saya yakin masalahnya adalah sesi netcat Anda terhubung kembali ke sesi yang sudah terbuka. Jadi saat melakukan hal-hal VNC jangan gunakan netcat.


Linux
  1. Bagaimana cara melakukan tunnel HTTP melalui SSH melalui SOCKS?

  2. Terowongan SSH HTTPS

  3. bagaimana cara melakukan tunnel Windows Remote Desktop melalui ssh menggunakan kotak linux?

  1. Penanganan Ctrl-c Dalam Sesi Ssh?

  2. Salin data melalui terowongan SSH melalui beberapa lompatan

  3. Koneksi SSH melalui Terowongan SSH Terbalik (Remote).

  1. Ssh – Redirect Stdout Melalui Ssh?

  2. Ssh – Terowongan Lalu Lintas Melalui Mesin Lain Melalui Ssh?

  3. Cara Mengatur Terowongan SSH Terbalik di Linux