GNU/Linux >> Znalost Linux >  >> Linux

Ssh – Vzdálená plocha přes Ssh Reverzní tunel, který má nahradit Teamviewer?

Chci otevřít relaci vzdálené plochy z mého notebooku na plochu přes můj SSH (reverzní) tunel. To by mělo být jednoduché (nebo alespoň proveditelné), ne? Doposud jsem k přihlášení ke vzdálené ploše používal Team Viewer. Rád bych dosáhl podobných výsledků bez Team Viewer.

Můj tunel SSH vypadá takto:

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

Na všech počítačích běží Linux (většinou Kubuntu 12.04 nebo OpenSuse 12.3). Nemohu změnit žádné porty ani provést žádné změny konfigurace na směrovačích nat.

Popíšu svůj tunel SSH, protože pochopení, které se zdá být nezbytné při řešení problému VNC / vzdálené plochy, který je jádrem mé otázky. Ohledně této nohy:

middleman<--nat<--desktop

…takto se to stanoví:

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

Ohledně této nohy:

laptop--->nat--->middleman

K prostředníku se mohu připojit následovně:

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

Co však ve skutečnosti potřebuji udělat, je připojit se přímo k ploše, nikoli k prostředníku. K tomu používám netcat (“nc”) na prostředníka. Na základě toho se zdá, že je vyžadováno nc. Takže jsem upravil svůj konfigurační soubor SSH na notebooku tak, aby používal ProxyCommand a nc:

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

Obsah je:

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

Kde middleman_fqdn je jako „middleman.com“

Pak se jen připojím k „desktopu“ v jednom kroku:

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

(Došlo mi to na základě nápovědy zde a zde a dalších souvisejících otázek, které jsem položil. Na toto téma jsem položil spoustu otázek, protože jsem s tím zápasil mnoho týdnů.)

S tímto připojením SSH dosáhnu plně funkčního shellu na mém počítači označeném desktop . Perfektní.

Nyní potřebuji řešení vzdálené plochy podobné VNC (nebo TeamVieweru) přes tento tunel SSH. Jak?

Zde je to, co jsem zatím zkoušel:

prostředník<–nat<–desktop

autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]

s navázaným připojením:

x11vnc -autoport 5901 

Sleduji, abych se ujistil, že se připojuje k portu 5901, což dělá.

laptop—>nat—>prostředník<–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

Nastavení tunelu:

[email protected]:~$ sudo ssh family_desktops

Klient VNC:

connect to localhost:5901

Tím se zobrazí chyba „server nenalezen“

Zkoušel jsem řadu variant na ProxyCommand, žádná z nich nebyla úspěšná. Je zřejmé, že hádám o tom, které parametry by měly být v ProxyCommand a které by měly být na příkazovém řádku ssh. Vidím nějaké potenciální problémy se svým nastavením, ale nedokázal jsem přijít na to, proč to všechno bude fungovat.

Související:Zabít všechny úlohy na pozadí?

P.S. Jak již bylo zmíněno, položil jsem k tomu několik otázek. Některé z nich mě přivedly blíže k řešení a tvoří základ mé současné otázky. Další mé předchozí otázky na toto téma jen ukazují mou neznalost a neschopnost položit otázku ve správné formě. V tuto chvíli tato současná otázka představuje mou nejlepší schopnost vyjádřit, jaký je můj problém a jaké je mé požadované řešení, ale některé z mých dalších otázek jsou stále také otevřené. Zde je jeden relevantní.

Přijatá odpověď:

Můžete zkusit udělat druhý krok bez provedení nc? To znamená – proveďte VNC pouze pomocí -L a -R. Věřím, že problém je v tom, že se vaše relace netcat připojuje zpět k již otevřené. Takže když děláte věci VNC, nepoužívejte netcat.


Linux
  1. Obsluha Ctrl-c v relaci Ssh?

  2. Jak nastavit Reverse SSH Tunnel v Linuxu

  3. HTTPS SSH tunel

  1. Ssh – přesměrovat Stdout přes Ssh?

  2. Ssh – tunelový provoz přes jiný stroj přes Ssh?

  3. jak tunelovat vzdálenou plochu Windows přes ssh pomocí linuxového boxu?

  1. Jak tunelovat HTTP přes SSH přes SOCKS?

  2. Omezit rsync přes ssh pouze pro čtení / pouze kopírování ze vzdáleného hostitele

  3. Vpn tunel pro vzdálený přístup SSH