Also mit der neuen Version ( hatte ich auf der Paramiko-Seite gefunden ), geht es. Jetzt hänge ich natürlich an einer anderen Sache. Da ich ja versuche zu tunneln ( Port 3306 ) muß ich den Tunnel als eigenen Prozess starten ( was ich auch mache ). Nur wie bekomme ich dann raus, das der Tunnel aufgebaut worden ist ... Auch wenns hier vielleicht nicht gerade hin gehört. Meine Routine sieht so aus:
Code: Alles auswählen
def makeTunnel (username, password, server, local, port):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
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.'
sys.exit(0)
starten tue ich den Prozess so:
Code: Alles auswählen
p = Process(target=tunnel.makeTunnel, args=('user', 'pass',
'htm-network.dyndns.org', '127.0.0.2', 3306,))
p.start ()
Das funktioniert auch ohne Probleme. Allerdings braucht der Tunnel eine Zeit, bis er steht und ich weiß nicht genau, wie ich feststellen kann, ob er steht. Das Tunnel-Programm beendet sich ja nicht und damit kann ich auch kein return zurück geben. Und hey Leute, ich bin doch nur nen Hobbyprogrammierer.