K tomuto tématu jsem se dostal tak, že jsem potřeboval přenášet ze vzdáleného počítače obraz z web kamery a protože jinak pro komunikaci s externími počítači používám převážně ssh, začal jsem manuálem tohoto programu. Nejsem žádným síťovým odborníkem, jen popíši, co používám a co mám vyzkoušeno. ...
Základem je mít nainstalován ssh server na vzdáleném počítači, na který se chcete připojit, ssh klient je naopak v Ubuntu již v základní instalaci.
$ sudo apt-get install openssh-server
Počítač, na který se chcete připojit přes internet, musí mít veřejnou adresu, pokud je za routrem, který veřejnou adresu má, je nutné přesměrovat port, na kterém komunikuje ssh (defaultně port 22) na konkrétní počítač.
Základní použití pro přihlášení na vzdálený počítač:
$ ssh user@192.168.1.150
Na tom není co řešit, přihlásíte se jako uživatel user zadáním přihlašovacího hesla, na počítač v lokální síti s IP 192.168.1.150.
Pokusíte-li se nyní spustit nějakou grafickou aplikaci, dostanete chybové hlášení, že program nemohl otevřít display. Je to tím, že nebyla nastavena systémová proměnná $DISPLAY, která odkazuje na aktuální zobrazovací zařízení. Základní display má označení :0.0 a pokud se má aplikace zobrazit na něm, stačí definovat tuto proměnnou:
$ export DISPLAY=:0.0
Budete-li chtít spouštět grafické aplikace na vzdáleném počítači, ale s výstupem na monitor počítače, ze kterého se přihlašujete, použijete při přihlašování přepínač -X (popřípadě -Y) pro přesměrování X11. A pokud je upload vzdáleného počítače limitován (např. 512kb/s je zoufale málo) je vhodné přidat kompresi přenášených dat přepínačem -C.
$ ssh -XC user@192.168.1.150
Po přihlášení by se měla grafická rozhraní spouštěných programů zobrazovat na vašem lokálním monitoru a proměnná $DISPLAY bude mít zhruba tento obsah: localhost:10.0 . Za mezeru můžete dopsat rovnou příkaz, který se má po přihlášení spustit, po jeho ukončení se pak ukončí i spojení. Například si pustím obraz ze zmíněné web kamery:
$ ssh -XC user@192.168.1.150 mplayer tv:// -tv driver=v4l2:width=176:height=144:device=/dev/video0 -quiet
Přenáším video o rozlišení 176x144 bodů a sotva se to na 512kb lince hýbe. Použití komprese je v tomto případě daleko menším přínosem, než u běžných aplikací, ale stále se vyplatí (závisí i na rychlosi vzdáleného počítače). Je to samozřejmě bez zvuku, lepším řešením je streamovat video se zvukem třeba pomocí vlc, které je k tomu přímo stvořené, a připojit se přímo přehrávačem.
Pár odkazů k problematice ssh:
http://wiki.ubuntu.cz/SSH
http://wiki.ubuntu.cz/SSH
Nějak to nefunguje ...
OdpovědětVymazatpepe@PC-Pepe:~$ ssh plysacek@ruzka
plysacek@ruzka's password:
Linux NB-plysacek 2.6.32-3-486 #1 Thu Feb 25 05:35:13 UTC 2010 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Mon Mar 7 09:45:09 2011 from 192.168.111.2
plysacek@NB-plysacek:~$ export DISPLAY=:0.0
plysacek@NB-plysacek:~$
plysacek@NB-plysacek:~$ leafpad
No protocol specified
leafpad: Nelze otevřít displej:
plysacek@NB-plysacek:~$
Pepe cz3dtc@seznam.cz
Na systému, na kterém spouštíš grafický program, musí běžet X server, to je základní předpoklad, jinak mě toho z uvedeného bohužel moc nenapadá. Spouštění grafického programu na vzdáleném počítači ale dává zpravidla větší smysl s přesměrováním X na lokální monitor..
OdpovědětVymazat