[gelöst] Fernsteuerung via SSH: RDP kommt zu früh, VNC auch!

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Ingo Maurer
Beiträge: 27
Registriert: 30.12.2005 03:16:14

[gelöst] Fernsteuerung via SSH: RDP kommt zu früh, VNC auch!

Beitrag von Ingo Maurer » 29.01.2008 23:17:22

Hallo,

ich verbinde von meinem lokalen Debian zu einer entfernten Windows Kiste. Dort lauscht ein SSH Server (freesshd) mit port forwarding. Das ganze dient dem Zweck die Windows Kiste heute über VNC und morgen über RDP fernzusteuern, das geht ja über den weitergeleiteten TCP port recht gut. Ich benutze für ssh die public key authentification, somit entfällt das manuelle eintippen eines Passwortes.

Aber es funktioniert nicht, weil die Port Weiterleitung zu spät kommt.

Ich habe 2 Sktipte. Eins für VNC:

Code: Alles auswählen

#!/bin/bash

nohup ssh -p 2223 -L 5924:127.0.0.1:5900 sshuser@winlocation.dyndns.org &

vncviewer localhost:5924:
... und eins für RDP:

Code: Alles auswählen

#!/bin/bash

nohup ssh -p 2223 -L 3323:127.0.0.1:3389 sshuser@winlocation.dyndns.org &

/usr/bin/rdesktop -n ibm -g 1024x755  -r sound:off -r clipboard:CLIPBOARD -N -k de -a 16 -x m -T mx23 -u udev -p xxxxx -d SERV1 localhost:3323
Zwischen den beiden Befehlen wäre wohl eine Pause nötig, weil die ssh Verbindung ein Weilchen braucht, bis sie steht.

Ansonsten sagt rdp oder vnc client "connection refused". Mit Pause geht es aber.

Da gibt es doch bestimmt eine Lösung? Daß der zweite Befehl erst ausgeführt wird wenn der erste steht? Oder daß der zweite sozusagen dem ersten mitgegeben wird? Möchte ungern eine Pause mit fester Länge einbauen, finde ich auch un-originell ;-)

Ich hoffe ich habe es richtig erklärt und bin dankbar für jeden Tipp!
Ingo
Zuletzt geändert von Ingo Maurer am 30.01.2008 14:03:55, insgesamt 3-mal geändert.

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Re: Fernsteuerung via SSH - RDP kommt zu früh, VNC auch!

Beitrag von SubOptimal » 30.01.2008 01:16:47

Hi Ingo,
Ingo Maurer hat geschrieben:Aber es funktioniert nicht, weil die Port Weiterleitung zu spät kommt.
Ich habe 2 Sktipte. Eins für VNC:

Code: Alles auswählen

#!/bin/bash
nohup ssh -p 2223 -L 5924:127.0.0.1:5900 sshuser@winlocation.dyndns.org &
vncviewer localhost:5924:
Zwischen den beiden Befehlen wäre wohl eine Pause nötig, weil die ssh Verbindung ein Weilchen braucht, bis sie steht.
Ich würde es so lösen.

Code: Alles auswählen

#!/bin/bash
ssh -p 2223 -f -L 5924:127.0.0.1:5900 sshuser@winlocation.dyndns.org sleep 10
vncviewer localhost:5924:
-f = weist ssh an sich selbst als Hintergrundprozess laufen zu lassen, bevor das angegebene Kommando ausführt (hier: sleep 10), d.h. ssh wechselt in den Hintergrund nachdem die Verbindung aufgebaut wurde und führt dann das Kommando aus
sleep 10 = Kommando das auf winlocation.dyndns.org ausgeführt wird, so zu sagen als auto disconnect counter

Wenn "sleep 10" beendet ist würde sich normalerweise ssh auch beendet. Da durch den vncviewer der Tunnel aber noch verwendet wird, beendet sich ssh erst komplett, wenn auch der Tunnel nicht mehr benutzt wird.
Das ganze hat folgende Vorteile:
Da vncviewer erst gestartet wird, nachdem die Verbindung hergestellt wurde entfällt ein sleep x vorm Start des vncviewer.
Sollte der vncviewer keine Verbindung aufbauen können, weil z.B. der VNC Server nicht läuft, dann wird die ssh Sitzung nach 10 Sekunden wieder geschlossen. Was in Deinem Beispiel mit nohup nicht der Fall wäre. Da müsstest Du Dich selbst darum kümmern, dass die ssh Sitzung wieder beendet wird.

SubOptimal

Ingo Maurer
Beiträge: 27
Registriert: 30.12.2005 03:16:14

Beitrag von Ingo Maurer » 30.01.2008 14:01:10

Funktioniert super - toll!

Linux ist ne feine Sache. Und ich finde es enorm was man an Unterstützung bekommt - Danke!

Werde wohl gelegnetlich den freesshd dann nochmal gegen cygwin austauschen. Aber das ändert ja nichts an den Befehlen.

Schönen Gruß
Ingo

Ingo Maurer
Beiträge: 27
Registriert: 30.12.2005 03:16:14

Erfahrungsbericht nach einigen Monaten Einsatz

Beitrag von Ingo Maurer » 15.04.2008 12:21:39

Ich setze die Lösung so jetzt bei vielen Fernzugriffen erfolgreich ein, sowohl mit FreeSshD als auch mit Cygwin.

Die Sleep Zeit habe ich von 10 auf 2 reduziert, läuft prima.

Leider habe ich es noch nicht wirklich raus wie man Cygwin auf Windows 2003 Server richtig installiert, dort nutze ich daher FreeSshD als Server. Das wird mir auch noch irgendwann gelingen. Auf Windows 2000 Servern nehme ich aber schon cygwin, weil das da einfacher geht.

Eine weiterer Punkt:

Oft bleibt nach dem Abreißen einer Verbindung noch der SSH Client Prozess im lokalen Speicher und blockiert den Port. Daher teste ich das in den Verbindungsskripten zu Beginn mit

Code: Alles auswählen

lsof -i :3382
echo "press key..."
read kp
- in diesem Fall also für eine Portweiterleitung auf den lokalen Port 3382. Falls dieser Port also noch blockiert war, sehe ich das vor dem Verbinden, der ensprechende Prozess wird mit PID angezeigt. Ich breche dann mit Ctrl-C das Skript vor dem Verbinden ab (an der Stelle "read kp"). Falls es sich bei dem Prozess dann wirklich um eine solche abgerissene alte Verbindung handelt, sage ich "kill 4321" (wenn die Portnummer zB. 4321 war), starte dann das Skript erneut. Das läßt sich bestimmt weiter automatisieren, aber mir reicht es momentan so. Werde eventuell demnächst mal ein Python Skript dafür machen.

Vielleicht hilft das mal jemand anderem weiter

Schönen Gruß
Ingo

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Re: [gelöst] Fernsteuerung via SSH: RDP kommt zu früh, VNC auch!

Beitrag von mistersixt » 16.04.2008 09:31:28

Wenn man den sshd auf dem Standardport laufen hat, kann man mit dem xtightvncviewer sowas machen:

Code: Alles auswählen

# xtightvncviewer -via sshuser@winlocation.dyndns.org localhost
Oder anstelle "localhost" einen Hostnamen im entfernten Netz, der dem Rechner winlocation.dyndns.org bekannt ist.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

Antworten