Ich habe ja ne Zeit lang mal mit dem Modul Paramiko rumgespielt und damit, remote auf einen SSH-Server zugegriffen und dort Befehle gestartet. Jetzt habe ich mal eine Frage zum SSH-Tunnel.
Ich nutze einen mySQL-Server, den ich natürlich nicht im Router nach außen hin öffen möchte. Ich würde gant gerne den mySQL-Port über die SSH tunneln um auf den mySQL-Server von außen drauf zu greifen zu können. Da ich Linux nutze, kann ich natürlich mir mal schnell einen Port über die Konsole tunneln. Die Software soll aber auch unter Windows laufen.
Meine Frage ist einfach, kann ich unter Python und vielleicht Paramiko einen SSH-Tunnel aufbauen? Oder gibt es da eine andere Lösung für?
ssh tunnel aufbauen
-
- User
- Beiträge: 435
- Registriert: Montag 20. Februar 2006, 18:11
- Wohnort: Menden / Sauerland
- Kontaktdaten:
@The Hit-Man: Wirf mal einen scharfen Blick auf die Beispiele von Paramiko, insbesondere auf forward.py 

-
- User
- Beiträge: 435
- Registriert: Montag 20. Februar 2006, 18:11
- Wohnort: Menden / Sauerland
- Kontaktdaten:
genau. Das sieht doch schon mal echt gut aus. Danke
Ist ja nen kompletter Tunnel.
Ist ja nen kompletter Tunnel.
-
- User
- Beiträge: 435
- Registriert: Montag 20. Februar 2006, 18:11
- Wohnort: Menden / Sauerland
- Kontaktdaten:
hmmmm, ich versuche immer noch einen Tunnel, mit paramiko aufzubauen. Aber irgendwie bekomme ich immer eine Fehlermeldung wenn ich den Tunnel benutzen will ...
Die Meldung sieht so aus:
Ich versuche einfach den Port 80 vom Server auf meinen Rechner zu tunneln. Der Code sieht so aus:
Es scheint so, als würde der Port wirklich getunnelt. Das ganze starte ich unter root. Nur wenn ich dann mit dem Webbrowser auf 127.0.0.1:80 zugreifen will, bekomme ich eben diese Fehlermeldung ( in der Konsole ).
Hat jemand eine Ahnung, woher das kommt? Unter google habe ich keine Hilfe gefunden.
Die Meldung sieht so aus:
Code: Alles auswählen
Connecting to ssh host htm-network.dyndns.org:22 ...
Now forwarding port 80 to 127.0.0.1:80 ...
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Incoming request to 127.0.0.1:80 failed: ChannelException('Administratively prohibited',)
Code: Alles auswählen
def makeTunnel (username, password, server, local, port, keyfile):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.load_system_host_keys (keyfile)
verbose('Connecting to ssh host %s:%d ...' % (server, 22))
try:
client.connect(server, 22, username=username, password=password)
except Exception, e:
print '*** Failed to connect to %s:%d: %r' % (server, port, e)
sys.exit(1)
verbose('Now forwarding port %d to %s:%d ...' % (port, local, port))
try:
forward_tunnel(port, local, port, client.get_transport())
except KeyboardInterrupt:
print 'C-c: Port forwarding stopped.'
os.unlink(pidfile)
sys.exit(0)
Hat jemand eine Ahnung, woher das kommt? Unter google habe ich keine Hilfe gefunden.
-
- User
- Beiträge: 435
- Registriert: Montag 20. Februar 2006, 18:11
- Wohnort: Menden / Sauerland
- Kontaktdaten:
Oh man, ich habe den Fehler gefunden. Hatte nur Server und Client vertauscht 

-
- User
- Beiträge: 435
- Registriert: Montag 20. Februar 2006, 18:11
- Wohnort: Menden / Sauerland
- Kontaktdaten:
Nun habe ich das nächste Problem
Meinen Webserver kann ich ohne Probleme tunneln. Ich wollte aber den Samba Port 445 tunneln. Starte ich mein Programm, wird der Tunnel aufgebaut. Mache ich dann ein telnet auf 127.0.0.1 1445, bricht der Tunnel zusammen und bekomme diese Meldung:
Kann mir da noch mal jemand helfen?

Code: Alles auswählen
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connection closed by foreign host.
Code: Alles auswählen
versuche Tunnel aufzubauen ...
Connecting to ssh host htm-network.dyndns.org:22 ...
Now forwarding from port 445 to 127.0.0.1:1445 ...
Incoming request to htm-network.dyndns.org:445 failed: ChannelException('Connect failed',)