Sziasztok!
Remélem nem lerágott csont még, de nem tudom hogy mire keressek rá.
Adott két gép, mindkettő fent csücsül az interneten. Az egyik a laptopom, a másik egy usernek titulált desktop gép.
Szeretnék ssh-n keresztül programot futtatni a laptopról indítva a useren, de úgy, hogy a grafikus felület is a useren jelenjen meg.
Addig már eljutottam, hogy ssh-val bejelentkezek a userre, de programot még nem sikerült így indítanom.
(Azt szeretném, hogy elindítva egy képnéző programot, távolról meg tudjak jeleníteni a monitoron egy általam scp-vel átküldött képet, de user felöli felhasználói beavatkozás nélkül).
Tudtok valami ötletet adni?
Köszönettel
Krisz
- 5610 megtekintés
Hozzászólások
félreértelmeztem
szóval: vnc over vpn pl.
én konkrétan muter otthoni gépét szoktam így "debug"-olni. nála tightvnc+hamachi van, nálam xp-n/vistá-n dettó, debianon meg hamachi+hamachi-gui+vinagre
meglepően keveset kell vele tökölni, szerintem elég jó megoldás, ha az ember nem elsőre csinálja, kb. 15 perc alatt összedobható komolyabb "szakmai" tudás nélkül
- A hozzászóláshoz be kell jelentkezni
[törölve]
--
Debian lenny
- A hozzászóláshoz be kell jelentkezni
A kérdés egyszerűbb lenne, ha távoli programot akarnál futtatni a laptopon úgy, hogy az ablak is a laptopon jelenjen meg.
Így viszont azt tudom mondani, hogy ssh-zásnél ne használd az X és az Y kapcsolókat. Bejelentkezés után pedig megfelelően paraméterezve indíts konzólból egy programot. Nekem kettő jut így eszembe képek megjelenítésére. Az egyik az "xv". A másik egy megfelelően paraméterezett firefox (file:///...).
Üdv,
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez lesz az enyém.. Nem fog nyafizni a $DISPLAY változó miatt? Mert eddig akárhányszor ilyesmivel próbálkoztam, mindig belefutottam ebbe. Kipróbálni sajnos már csak holnap tudom, ezért szeretném körbejárni az esetleges buktatókat.
És igen, köszönöm a gyors válaszokat! :)
Krisz
- A hozzászóláshoz be kell jelentkezni
Hát én még gondolnék kiadni egy export DISPLAY=:0 -át. És utána :)
- A hozzászóláshoz be kell jelentkezni
és az 'xhost +' parancsot is érdemes felírni a kéménybe
de a vnc (Gnome alatt vino néven alapból fut, System/Remote Desktop alatt vannak a beállításai) ezerszer kulturáltabb, és nem mellesleg látod amit csinálsz
- A hozzászóláshoz be kell jelentkezni
ssh -luser -X ip
Ez nem jó?
- A hozzászóláshoz be kell jelentkezni
Nem mert nem ezt akarja. Amugy a megoldas engem is erdekel.
--
The worst or stupidest ideas are always the most popular.
- A hozzászóláshoz be kell jelentkezni
(Szerintem valahogy így:)
ssh masik_user@távoligép
(ott kiadva:)
xhost +
(vagy)
xhost local
(aztán)
DISPLAY=:0.0 xterm -e 'echo "HELLO"; sleep 3'
DISPLAY=:0.0 xv kep.jpg
- A hozzászóláshoz be kell jelentkezni
En igy csinalnam:
$ # ssh local forward-dal (-C - compress, mert a X szoszatyar)
$ ssh -C -L6001:user:6000 username@user
$ # a fenti ssh izet akar az ~/.ssh/config-ba be lehet irni
$ # vagy igy:
$ export DISPLAY=:1.0
$ kepnezosw
$ # avagy
$ kepnezosw -display :1.0 kep.jpg
valamint ezt megelozoen a user gepen az X-et futtato user neveben biztositani kell a hozzaferest 'xhost +', vagy 'xhost +username' alakban
Nem kell atmasolni a kepet, minden a te gepeden fut, kiveve a megjelenitest.
Ha shell-t akarsz kozosen hasznalni a tavoli user-rel, akkor az expect alapu kibitz ill. xkibitz-el lehet
olyat csinalni, hogy mindket gepen fut xterm+sh es mindketten latjatok amit a masik gepel!
- A hozzászóláshoz be kell jelentkezni
NA, alakul a dolog. Viszont még mindig erősen gubancos.
:~$ export DISPLAY=:0.0
:~$ echo $DISPLAY
:0.0
:~$ xhost local
Xlib: connection to ":0.0" refused by server
Xlib: No protokol specified
xhost: unable to open display ":0.0"
ha meg arra gondolok, hogy talán nem a "nullás" a képernyő:
:~$ export DISPLAY=:1.0
:~$ echo $DISPLAY
:1.0
:~$ xterm -e 'echo "HELLO";'
xterm Xt error: Can't open display: :1.0
Hát ez az amitől tartottam én..
Ja, és alapból nincs beállítva a $DISPLAY változó, mert üres sort ad vissza. Pedig megy az X.
Krisz
u.i.: Hogy egyértelmű legyen a dolog: Nincs grafikus csillivilli, mert lassú a távoli gép nete. Működik, de tetű lassú. Ezért kellene konzolos megoldás, hogy azon a gépen tudjak indítani konzolból graf. programot.
Nézegetni nem akarom, elég a tudat hogy aki előtte ül, az látja.
- A hozzászóláshoz be kell jelentkezni
'xhost +' annak a user-nek a neveben kell kiadni, aki az X server-t futtatja.
- A hozzászóláshoz be kell jelentkezni
Én ezt nem vágom. A távoli gépen is, meg az enyémen is a root nevében fut az X, ahogyan az az alapbeállítás. Ubuntu Hardy-ról van szó.
Akkor ezt kellene?
krisz:~$ xhost +root
xhost: Bad hostname "root"
krisz:~$ sudo xhost +krisz
sudo: password for krisz:
xhost: Bad hostname "krisz"
Nem értem. Mit kellene csinálnia ennek az xhost-nak?
- A hozzászóláshoz be kell jelentkezni
A tavoli gepen root-kent ez megy:
# export DISPLAY=:0.0
# xhost +
# xclock
Es a tavoli user lat egy orat....
- A hozzászóláshoz be kell jelentkezni
root-ként:
# export DISPLAY=:0.0
# xhost +
No protocol specified
xhost: unable to open display ":0.0"
#
# xclock
No protocol specified
Error: Can't open display :0.0
Még az előttem lévő gépen sem megy. Nemhogy konzolból, de még xterm alatt is ugyanezt mondja. Valamit még be kellene itt állítanom nem?
- A hozzászóláshoz be kell jelentkezni
ps -efw | grep X
mit mond?
- A hozzászóláshoz be kell jelentkezni
,,
xhost +
''-t az X-szerveren adjuk ki, azaz azon a helyi gépen, amelyiknek a kijelzője előtt ülünk. Merthogy erre a kijelzőre (X-szerverre) fog csatlakozni a kliens.
,,
export DISPLAY=szerver.valami:0.0
''-t pedig a távoli gépen, mert ebből a változóból tudják a programok, hogy hova kell csatlakozniuk.
Bocs, most látom, hogy régi. :)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Először én is ezt írtam. Ő a távoli gépen szeretne gui-s dolgokat megjeleníteni, nem a kliensen.
--
Debian lenny
- A hozzászóláshoz be kell jelentkezni
Az egyik a távoli elérés, amihez elegendő egy ssh és parancssori megjelentő, ami feh.
http://www.linux.com/feature/55737
Nem teljesen idevágó de hasonló céllal már csináltak hasonlót sokan.
http://alnino2005.googlepages.com/15%22diydigitalpictureframe
http://linuxbasement.com/content/digital-picture-frame-howto
http://www.adamfranco.com/archives/3
http://tuxmobil.org/laptop_digital_picture_frame_with_linux.html
- A hozzászóláshoz be kell jelentkezni
A feh szintén kérné a hozzáférést az X-hez nem? Egyébként megjegyzem, mert ha ez a probléma megoldódik, akkor ezt fogom használni "képnézetésre".
De mit kezdjek az xhost-tal, hogy működjön is? Olyan, mintha nem adná át a képernyőt az alkalmazásnak.
Krisz
- A hozzászóláshoz be kell jelentkezni
Ez érdekes. Közben kísérletezek a dologgal, és rájöttem valamire.
Ha konzolból adom ki az xhost + parancsot, akkor eldobja root-ként, és userként is. Ha viszont xterm-be írom be userként (ugye xterm már graf-módban van, és ismeri a $DISPLAY-t is magától), akkor "acces control disabled, clients can connect from any host" üzenettel válaszol, és innentől működik mindenhol.
Persze csak kicsit vagyok előrébb, mert ez a helyi gépemen van így. A távolin még valahogy össze kell varázsolni azt, amit az xterm csinált nekem.
Sajnos ma már nincs több időm, mert menni kell dolgozni, de holnap még megint előveszem a dolgot.
Köszönöm az eddigi segítséget is!
Krisz
- A hozzászóláshoz be kell jelentkezni
Elnéztem az időt, és még van egy órám :)
Szóval a ps ilyet mond:
:~$ ps -efw | grep X
root 7139 7133 4 20:04 tty7 00:00:09 /usr/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
ugyanezt mondja konzolból és xterm-ből is.
- A hozzászóláshoz be kell jelentkezni
A megoldás kliens oldalon:
xinit -exec ssh -X -i ${kulcs} ${user}@${szerver} exec ${ablakkezelo} -- :1
- A hozzászóláshoz be kell jelentkezni
rem_user:~$ xinit -exec ssh -X rem_user(kukac)my_host.dyndns.org exec gdm -- :1
X: user not authorized to run the X server, aborting.
xinit: Server error.
Honnan veszem a $(kulcs)-ot? Nem az igazi ez kérem. :(
Jó lenne nekem az xhost-os változat is, csak tudi kellene hogy mit kell még neki beállítani.
Krisz
- A hozzászóláshoz be kell jelentkezni
Valakinek működik ez a dolog egyáltalán?
Mármint hogy átvált Ctrl+Alt+F1-el konzolba, és onnan elindít valami grafikusat mondjuk az xclock-ot..
Nekem valamiért mindig azt mondja, hogy
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
xhost: unable to open display ":0.0"
Mit kellene beállítani az xorg-nak, hogy engedjen hozzáférést? Elég lenne a localhost-on, mert úgyis helyi userként jelentkezek be.
- A hozzászóláshoz be kell jelentkezni
Nekem megy.
De azt most nem tudnám megmondani, hogy nálad mi van máshogy beállítva.
Üdv,
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Igen, nyusziful, nekem es meg millioknak mukodik. A dolog elemei:
- remote (X-et futtato) oldalon a kivant user adja ki az 'xhost +' parancsot
- remote oldalon sshd_config -ban az X11Forwarding legyen yes
- remote oldalon az ssh legyen beengedve
- local oldalrol bejelentkezes utan:
- legyen helyesen beallitva a DISPLAY valtozo (export DISPLAY=:0.0")
Tovabbi segitseget a 'ssh -v -X xterm' altal kiirt hibauzenetek adhatnak. (A biztonsag kedveert nezd meg egy normalisan lefuto, nem X-es parancs kimenetet is.)
ssh -X remotehost 'sudo su - remoteuser -c (xhost +; export DISPLAY=:0.0; xmessage hello)'
Most probaltam ki (AIX shell -> Linux GUI), mukodik! Dob egy hibat, de az kit erdekel...
Pontosabban nalam a sudo nem volt benne, mert azonos userrel futtattam.
Ha tudod 'remoteuser' jelszavat, meg sudo se kell, csak en altalaban olyanoknak csinalom, akinek nem tudom a jelszavat ;-)
- A hozzászóláshoz be kell jelentkezni
ssh szerveren:
/etc/ssh/sshd_config-ba
X11Forwarding yes
(restart)
ssh kliensen:
~/.ssh/config-ba
ForwardX11 yes
xterm parancssorból be-ssh-zol a szerverre,
parancssorból (de már a szerver parancssorából)
valami kis X-es progi, pl.
xosview
megjelenik (a kliens X szerverén). Nem túl bonyolult.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
Csak nem akar ez menni :(
Beállításokban X11forward megvan, ssh-zok a szerverre, majd xclock és megjelenik a saját képernyőmön az óra.
Azt hiszem fel fogom adni. Ennyit nem ér az egész.
Köszi a hozzászólásokat, valszeg az én rendszeremben van a bibi.
Krisz
- A hozzászóláshoz be kell jelentkezni
Bocs, nem csak ennyi lenne az egész?
Távoli gépen: xhost +
majd nálad:
programnév --display ip.cím:0.0
ja bocs ha a távoli gépen akarod futtatni, akkor
Távoli gépen
xhost +
DISPLAY=:0.0
programnév
ennyi. Nálam megy.
- A hozzászóláshoz be kell jelentkezni
Ja, bocs lehet hogy neked azért nem meg így, mert a távoli gépen az X nem a 0.0-án fut. Ezt úgy lehet megnézni, hogy mégnézed pl. a /var/log/Xorg.?.log -ot és akkor abból kitalálod látod hogy mennyi a server/screen száma. Nálam volt olyan hogy X újarindítása után az X nem az 0.0 -n hanem az 1.0 -án ébredt fel. Ha úgy van beállítva, akkor az is lehet hogy 0-ás screen nincs is hanem csak 1-es (vagy 2-es stb.) Ekkor az DISPLAY=0.1 (vagy 0.2) a nyerő. Ezt vagy a /etc/X11/xorg.conf -ból vagy a /var/log/Xorg.?.log -ból lehet látni (az elején kiírja milyen screenekre indul el)
- A hozzászóláshoz be kell jelentkezni
... és megjelenik a saját képernyőmön az óra.
Nem ez kell? Úgy látom, mintha megvolnál.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
Nem ő távolról akar elindítani egy programot, úgy hogy a garfikus felület _ott_ jelenjen meg. (Nem nála. ehhez nem kell semmi X11forwarding stb varázslat.)
- A hozzászóláshoz be kell jelentkezni
Én így raktam ki egy virágot a feleségem otthoni gépére az irodából haza ssh-zva.
--
unix -- több, mint kód. filozófia.
Life is feudal
- A hozzászóláshoz be kell jelentkezni
Hát ha nem is virágot, de én is ezt szeretném megoldani.
A távoli gépen is a 0.0-ás képernyő van, ezt néztem. De miért van, hogy mindenkinek megy, de nekem nem? :(
Nyilván én vagyok a béna.
Krisz
- A hozzászóláshoz be kell jelentkezni
Annak gyakorlati haszna van, ha egy távoli gépen futó program a saját képernyőmön látszik. A fordított irány viszont csak vicc. Nehezebb, mint a 'normális', használat, mert nem erre vannak beállítva a dolgok, pl. valószínű, hogy a távoli gép letiltja. Aki trükközni akar, az törje a fejét.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
"Nehezebb, mint a 'normális', használat, mert nem erre vannak beállítva a dolgok"
????????
--
unix -- több, mint kód. filozófia.
Life is feudal
- A hozzászóláshoz be kell jelentkezni
Igen, az egyik magától megy, a másikhoz ügyeskedni kell, ha nehezen értenéd, hogy miről van szó. Ezenkívül, jogosultság próblémák is vannak. Pl. nem szeretném, ha munka közben mindenféle vicces ablak bukkanna fel. Tehát ha észrevenném, hogy nincs letiltva az ilyesmi, akkor letiltanám.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
"Igen, az egyik magától megy, a másikhoz ügyeskedni kell"
Tényleg nem értem. Mit kell ott ügyeskedni?
--
unix -- több, mint kód. filozófia.
Life is feudal
- A hozzászóláshoz be kell jelentkezni
Bocsi felreertettelek korabban.
Ha azt akarod, hogy a server gep egy bizonyos felhasznalojanak grafikus feluleten jelenjen meg az altalad inditot program GUI-ja nem kell semmi ugyeskedes az ssh-val. Egyszeruen csak felepsz a gepre, ha tudod a felhasznalo jelszavat akkor su-val atlepsz hozza, majd:
xhost +
export DISPLAY=${FELHASZNALO_ALTAL_HASZNALT_DISPLAY}
#csh-eseten setenv DISPLAY ${FELHASZNALO_ALTAL_HASZNALT_DISPLAY}
Majd egyszeruen elinditod a programot amit futatni szeretnel.
- A hozzászóláshoz be kell jelentkezni
Irtó sok xhost+ javaslat volt itt, amit azért általában ellenjavallani szoktak (nehogy haxor@evil.com is elindítsa a saját kis X-es programját a nagy liberalizmusban.)
Az én kis tippem inkább a következő lenne:
ssh remoteuser_running_X@remotehost.internets.hu.
export DISPLAY=:0.0
find / -iname "avi" -exec mplayer '{}' \;
A :0.0 csak olyan vagdalkozás agy nélkül, biztos lehet szebben hasonló hibaszázalékkal működőt mondani.
Ha ugyanazzal a usernévvel jelentkezel be, mint aki az X-et bámulja, akkor nem kell xhostolni.
- A hozzászóláshoz be kell jelentkezni
Elnézést: a "nehogy" után kicenzúrázódott, hogy "valaki más is"
- A hozzászóláshoz be kell jelentkezni
Igazad van xhost+ nem kell.
Buta modon beirtam (mert bevolt allitva, hogy automatikusan fusson le bejelentkezeskor) es nem neztem utana kell-e.
- A hozzászóláshoz be kell jelentkezni
EEEEzazezazezaz!!!!!
Köszönöm szépen, így már nagyon frankón működik!!!!
Krisz
- A hozzászóláshoz be kell jelentkezni
Ezt melyikre írtad? :D
--
unix -- több, mint kód. filozófia.
Life is feudal
- A hozzászóláshoz be kell jelentkezni
Ezt még az xhost-os megoldásra, de most hogy van, kipróbálom xhost nélkül is :)
(Csak közben tovább írták az okosságot az okosok. Köszönet nékik, és mindenkinek :))
Krisz
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam az xhost nélküli változatot is, és nagyon jó!
Köszönöm a hozzászólásokat, megint okosabb lettem egy kicsit! :)
Krisz
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam az xhost nélküli változatot is, és nagyon jó!
Köszönöm a hozzászólásokat, megint okosabb lettem egy kicsit! :)
Krisz
- A hozzászóláshoz be kell jelentkezni
Nem olvastam végig minden hozzászólást, bocs a van már ilyen.
Csak annyi, hogy épp most csináltam ilyet, vncserver programmal szerveroldalon, kliensoldalon pedig thightvnc-vel és így rögtön a vncserver-t futtató user grafikus asztalát kaptam. Működik rendesen, semmi gondom vele.
--
Keep it simple, stupid.
- A hozzászóláshoz be kell jelentkezni
Köszönöm Neked is a hozzászólást, de nekem nem erre volt szükségem. Nem a user desktopját akartam "elorozni", csak megjeleníteni egy program kimenetét nála, ami program nála fut le.
Ha vnc-zek, akkor az kb 100kb/s adatforgalmat jelent ha tömörítek is (30Kb az internet sávszélessége), így viszont csak a parancsot kell átvinnie ssh-n.
Szóval a probléma megoldva, és köszönet ismét mindenkinek érte!
Krisz
- A hozzászóláshoz be kell jelentkezni
sudo cat ~victimuser/.Xauthority >> ~/.Xauthority
~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.
- A hozzászóláshoz be kell jelentkezni