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.
desktop
bir NAT yönlendiricisinin laptop
arkasında ve bir NAT yönlendiricisinin arkasında olduğundan gereklidir .