Hallo, gestern hab ich es dank Eurer Hilfe geschafft, auf einen kleinen
Linux-Server per SSH zuzugreifen. Der Linux-Server steht bei mir zu
Hause hinter einer FitzBox, ich habe den SSH-Server und die Portfreigabe
auf 443 eingestellt, den root deaktiviert und die Kennwörter geändert.
Nun kann ich mich also (freu) von einem entfernten Windows-PC aus mit
Putty auf die Kommandozeile verbinden. Nun habe ich gelesen, dass man
eine X-session durch das SSH tunneln kann. Auf dem Server läuft ein
Debian, also was muss ich alles tun, um die GUI von dem Server hier am
Windows-PC zu sehen?
Also was ich schon gemacht habe:
- UltraVNC auf dem PC installiert
- auf dem Server läuft schon ein vnc-server, der wird mit dieser Zeile
gestartet:
/usr/bin/vncserver :1 -geometry 1024x768 -depth 16 -pixelformat rgb565
(das 565 kommt mir komisch vor)
Fragen:
1) muss ich zu Hause auf der Fritzbox einen weiteren Port außer 443
freigeben? Ich denke nicht, denn es soll ja "getunnelt" werden?
2) Wie muß ich Putty / UltraVNC einstellen und starten, damit es
funktioniert (Hat jemand einen Link mit Muster/Erklärung)? Das mit dem
Port weiterleiten auf PC-Seite hab ich noch nicht ganz kapiert..
3) Kann ich die SSH-Kommandozeile trotzdem benutzen (so wie jetzt im
Moment), auch wenn ich die VNC-Session damit tunneln will?
ssh -L 5901:localhost:5901 <servername>
Die Session ist standardmäßig dabei interaktiv. Dein VNC verbindest
du danach gegen VNC-Server ":1" auf der Maschine, auf der auch die
(Client-)SSH läuft.
qwertz schrieb:> (das 565 kommt mir komisch vor)
Ist schon OK. Wenn mit mit 16 bit per pixel arbeiten will, kann
man halt das "überschüssige" Bit (16 ist nicht durch 3 teilbar)
einer der Farben zuschlagen. Da das Auge für grün am empfindlichsten
ist, ist 565 die sinnvollste Aufteilung.
Alternative wäre -depth 24 (sofern supported) oder -depth 32, aber
dann sind mehr Daten zu übertragen.
qwertz schrieb:> Jörg Wunsch schrieb:>> ssh -L 5901:localhost:5901 <servername>>> Aber diese Zeile müsste ich ja dem Putty (auf dem Windows-PC)> beibringen, oder? Wie? :-)
SSH -> Tunnels im Menü unter conncetion
Ich muss nochmal etwas weiter ausholen, habe gerade gemerkt, dass ich
von einem PC im gleichen Netz aus (auch) keine VNC Session starten kann.
also der wie oben gestartete vncserver hat Nummer :1 und wird beim
Systmstart mit gestartet. Wenn ich mich mit diesem verbinden will, kommt
als Fehlermeldung:
"Failed to connect to server!"
Wenn ich einen zusätzlichen vncserver starte (meinetwegen wie oben auf
:3) , will er beim Verbinden ein Kennwort haben - woher nehmen und nicht
stehlen??
gebe ich irgendwas ein, steht da
"Authentication failed", wenn ich nichts eingeben steht
"empty password"
Warum fragt mich der :1 nicht nach dem Passwort, und wo bekomme ich das
her/wie setze ich das (ggf zurück)?
Putty kann doch auch X11 forwarding. Man braucht lediglich einen X
Server fuer Windows - z.B. Xming - installieren.
http://sourceforge.net/projects/xming/
Ich schrieb:> Ganz anderer Weg: Cygwin installieren und dann ssh -X (X-Forwarding) ...> mir persönlich ist diese ganze VNC-Geschichte immer unsympathisch ;-)
Soll mir recht sein, solange ich die gleiche GUI zu sehen bekomme wie
mit vncserver (war halt das Erste, was mit über den Weg lief..) braucht
man dann Windows-PC-seitig kein Putty? bzw. wo trägt man das ssh -X ...
dann ein?
Tom schrieb:> Evtl ist kein Passwort gesetzt, also einfach mal OK klicken.
bei :3 siehe oben, bei :1 habe cih dei Change gar nicht (die Abfrage
kommt am PC nicht)
Plong A. schrieb:> Putty kann doch auch X11 forwarding. Man braucht lediglich einen X> Server fuer Windows - z.B. Xming - installieren.> http://sourceforge.net/projects/xming/
Sehe ich dann PC-seitig die gleiche GUI wie mit vncserver? Wo ist der
Unterschied?
qwertz schrieb:> Sehe ich dann PC-seitig die gleiche GUI wie mit vncserver? Wo ist der> Unterschied?
Nein, damit startest du GUI-Programme, die auf dem Rechner zuhause
laufen, aber direkt auf der Windows-Kiste angezeigt werden.
Wenn du die bestehende Session remoten willst, brauchst du x0vncserver
oder das VNC-Modul für den X-Server. Sonst kriegst du zwar eine
vollständige Desktop-Session per VNC, aber das ist mitnichten dieselbe,
die du zeitgleich zuhsuse auf dem Schirm hast.
Zur Authentifizierung:
- Mit vncpasswd eine Passwortdatei generieren
- Beim Start des VNC Servers die Verwendung dieser Datei angeben.
Wie das genau beim Ultra geht, bin ich nicht sicher, viel nehmen die
sich da nicht. Beim tigervnc wäre das PasswordFile=...
qwertz schrieb:> Aber ich hätte gerne einen den kompletten Desktop mit Menüleiste etc.
Der kleine Fehler, der sich da eingeschlichen hat ist leider
entscheidend: willst du einen oder den Desktop?
Einen kriegst du mit vncserver. Den i.S.v. den Desktop der bereits
lokal laufenden Session kriegst du mit x0vncserver.
Malte S. schrieb:> Der kleine Fehler, der sich da eingeschlichen hat ist leider> entscheidend: willst du einen oder den Desktop?
Also EIN Desktop reicht mir, es muss nicht der sein, der schon läuft.
Aber eben auch nicht einzelne Programme in X-Fenstern.
Es ist mir auch gleich, welches Tool - es sollte eben nur ein Teil auf
dem Linux als server laufen und ein "Viewer" unter Windows. Mehr will
ich ja gar nicht.. :-)
Sind andere Tools einfacher für die o.g. Aufgabe? (ggf. welche?)
Nein, ich denke für die üblichen Anwendungsfälle ist VNC da schon
richtig.
Ohne Garantie: versuche es mal mit PassworfFile=... (vollständiger Pfad
zur von vncpasswd generierten Datei), um dem Server ein Passwort
mitzugeben.
VNC unter Linux ist ein Krampf. Ich nutze es zur Fernverwaltung eines
VM-Hostes (Debian). Solange ich nicht an der Konsole eine X-Session
gestartet habe/hatte, funktioniert es aber. Folgende Notizen habe ich
mir seinerzeit gemacht:
x11vnc so einrichten, daß es vor dem Login startet.
#x11vnc installieren
apt-get install x11vnc
#Passwortdatei anlegen
x11vnc -storepasswd "password" /etc/x11vnc.pass
#gdm konfigurieren, damit der initiierende Client nach dem Login nicht
wieder getrennt wird
editiere /etc/gdm/Init/Default ,in der Section [daemon] einfügen:
KillInitClients=false
#x11vnc automatisch starten
editiere /etc/gdm/gdm.conf ,füge am Ende (vor "exit 0") ein:
/usr/bin/x11vnc -rfbauth /etc/x11vnc.pass -forever -bg -noxfixes
Also ich habe Fortschritte erreicht, im lokalen Netz kann ich mich
anmelden, sofern ich mit einem eingeloggten Benutzer die o.g. Zeile
eingebe und einen anderen Screen verwende:
vncserver :4 -geometry 1024x768 -depth 16 -pixelformat rgb565
Ich habe ein neues Passwortfile mit vncpasswd generiert, was dann für
diese Session bei diesem Linux-Nutzer benutzt wird (standardmäßig unter
$HOME/.vnc/...) So weit, so gut.
Nun wurde beim Systemstart ebenfalls diese Zeile (mit Pfad) aufgerufen,
und zwar im Script /etc/init.d ein script "vncboot". Dieses habe ich
deaktiviert mit
update-rc.d vncboot disable. Danach (weiß nicht mehr genau) habe ich
versucht den wieder zu aktivieren (nicht gut, wenn man was versucht, was
man nicht versteht.. :-)
Also was ich gerne als nächstes lösen / verstehen würde:
1) mit welchem User läuft dieses Script beim booten -> demzufolge wo
liegt die passende passwd-Datei und wie editiere ich die? Und wie kann
ich das am besten debuggen - also wo geht die Standardausgabe hin / wie
kann ich das später nochmal sehen? der vncserver "sagt" ja beim Starten,
welche passwd-Datei er benutzt..
und
2) wie prüfe ich (ohne neu zu starten, also analytisch, nicht try and
error), ob das vncbot beim booten aufgerufen werden soll? ICh hab schon
ein bsichen gegoogelt und weiß: in der /etc/inittab steht als
standard-runlevel die 2.
Dann: Unter /ect/rc2.d müsste es eine Datei (ein Link?) S02vncboot geben
- gibt es aber nicht - wie bekomme ich die wieder?