TeamViewer'ın yerine SSH ters tünel üzerinden uzak masaüstü


14

SSH (ters) tünel üzerinden dizüstü bilgisayarımdan masaüstüne uzak bir masaüstü oturumu açmak istiyorum. Bu basit (veya en azından yapılabilir) olmalı, değil mi? Şimdiye kadar uzak masaüstünde oturum açmak için Team Viewer kullanıyorum. Takım Görüntüleyicisi olmadan benzer sonuçlar elde etmek istiyorum.

İşte SSH tünelim şöyle:

laptop--->nat--->middleman<--nat<--desktop

Tüm makineler Linux çalıştırıyor (çoğunlukla Kubuntu 12.04 veya OpenSuse 12.3). Nat yönlendiricilerinde hiçbir bağlantı noktasını değiştiremiyorum veya yapılandırma değişikliği yapamıyorum.

SSH tünelimi açıklayacağım çünkü sorumun kalbi olan VNC / uzak masaüstü sorununun çözümünde gerekli görünen anlayış. Bu bacak ile ilgili olarak:

middleman<--nat<--desktop

... işte böyle kuruldu:

autossh -M 5234 -N -f -R 1234:localhost:22 user@middleman.com

Bu bacak ile ilgili olarak:

laptop--->nat--->middleman

Aracıya şu şekilde bağlanabilirim:

me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman  

Ancak, aslında yapmam gereken aracıya değil, doğrudan masaüstüne bağlanmak. Bunu yapmak için aracıda netcat ("nc") kullanıyorum. Dayanarak bu o nc gerekli olduğunu görünür. ProxyCommand ve nc kullanmak için dizüstü bilgisayardaki SSH yapılandırma dosyamı düzenliyorum:

me@laptop:~/.ssh$ nano config

İçeriği:

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

middleman_fqdn"Middleman.com" nerede

Sonra sadece bir adımda "masaüstü" bağlanmak:

me@laptop:~$ ssh family_desktops -p 1234

(Bu çalışmayı burada ve burada yardıma ve sorduğum diğer ilgili sorulara dayanarak aldım . Bu konuyla ilgili tonlarca soru sordum çünkü haftalardır onunla güreştim.)

Bu SSH bağlantısı ile bilgisayarımda tam olarak işleyen bir kabuğa ulaştım desktop. Mükemmel.

Şimdi sadece bu SSH tüneli üzerinde VNC benzeri (veya TeamViewer benzeri) bir uzak masaüstü çözümüne ihtiyacım var. Nasıl?

İşte şimdiye kadar denedim:

aracı <- nat <- masaüstü

autossh -M 5235 -N -f -R 1235:localhost:5901 user@middleman.com

bu bağlantı kurulurken:

x11vnc -autoport 5901 

5901 numaralı bağlantı noktasına bağlandığından emin olmak için izliyorum.

dizüstü ---> nat ---> aracı <- nat <- masaüstü

dizüstü bilgisayar ~ / .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

Tünel kurulumu:

me@laptop:~$ sudo ssh family_desktops

VNC istemcisi:

connect to localhost:5901

Bu, "sunucu bulunamadı" hatası veriyor

Ben hiçbiri başarılı ProxyCommand varyasyonları bir dizi denedim. Açıkçası, hangi parametrelerin ProxyCommand ve ssh komut satırında olması gerektiği hakkında tahmin ediyorum. Kurulumumla ilgili bazı potansiyel sorunları görebiliyorum, ancak her şeyin neyin işe yarayacağını anlayamadım.

PS Belirtildiği gibi, bu konuda birkaç soru sordum. Bunlardan bazıları beni çözüme yaklaştı ve şu andaki sorumun temelini oluşturdu. Bu konuyla ilgili önceki sorularımın başkaları, cehaletimi ve soruyu doğru biçimde sormamayı gösteriyor. Bu noktada, bu soru, sorunumun ne olduğunu ve istediğim çözümün ne olduğunu belirtmek için en iyi yeteneğimi temsil ediyor, ancak diğer sorularımın bazıları hala açık. İşte ilgili olan.


1
Yan not: Lütfen "burada" veya "bu" bağlantıları kullanmayın. Bağlantılarınız için anlamlı bir ad verin, örneğin sorunun başlığı veya bağlantı verdiğiniz web sayfası.
Marco

Bu soruyu daha önce sormadın mı? unix.stackexchange.com/questions/82255/…
slm

@slm - sorumdaki bazı bağlantılara bakın. Bunlar benim ilgili sorularımdan bazıları. Hala bir çözüm bulmaya çalışıyorum ve her soru beni daha da yaklaştırıyor gibi görünüyor ...
MountainX

Bu inanılmaz derecede kıvrımlı görünüyor. Windows 8 makinemin uzak masaüstünü, güvenlik duvarında açık bir bağlantı noktası açık olan aynı ağdaki bir makineye SSH'leme yaparak kullanıyorum.
Tim

@Zaman bu bir ters SSH tünelidir ve desktopbir NAT yönlendiricisinin laptoparkasında ve bir NAT yönlendiricisinin arkasında olduğundan gereklidir .
MountainX

Yanıtlar:


3

İkinci adımı nc yapmadan deneyebilir misiniz? Yani - VNC'yi sadece -L ve -R ile yapın. Sorun, netcat oturumunuzun zaten açık bir şekilde tekrar bağlantı kurması olduğuna inanıyorum. VNC işlerini yaparken netcat kullanmayın.


1

ProxyCommand yerine, aracı sshd.conf için "gatewayports yes" ayarlamalısınız.

  1. Daha sonra masaüstünden aracıya uzak tünel alın ve aracıda tcp portunu x ve yerelde vnc'yi açın.
  2. Daha sonra dizüstü bilgisayarınızdan yerel tüneli alıp yerel ağınıza vnc portunu açarak x'e tünelleyin.
  3. Sonra localhost: vnc'ye bağlanın, böylece yerel tünelden aracıya ve uzak tünelden vnc dizüstü bilgisayarlara geçecektir.

Çalıştırdıktan sonra, ağ geçitlerinin daha güvenli ayarları hakkında daha fazla bilgi edinin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.