2010-10-28 35 views
0

Je rencontre de sérieuses difficultés lors de la configuration d'un tunnel approprié dans paramiko pour permettre une connexion à une base de données. J'ai examiné l'exemple 'forward.py', mais je ne comprends pas comment lier la connexion à la base de données. Tout pointeur serait très apprécié.Comment se connecter à une base de données via un tunnel Paramiko (ou un package similaire)

Je pense que je besoin de quelque chose comme suit:

t = paramiko.Transport((hostname, port)) 
t.connect(username=username, password=password, hostkey=hostkey) 
c = paramiko.Channel(t) 

#something about assigning a local port to this connection 

connection = psycopg2.connect(connectionstring) 
#and do my stuff 

connection.close() 
c.close() 
t.close() 

Répondre

2

si vous avez créé votre tunnel ssh en utilisant le script forward.py; vous pouvez utiliser le tunnel ssh pour connect à PostGreSQL comme ceci:

conn = psycopg2.connect(database="test", host="localhost", port=<forward_port>) 
+0

Je sais que c'est juste, je n'utilise pas forward.py correctement. – mvrak

+0

Il s'avère que je ne suis pas sûr pourquoi je pensais que cela convenait à mes utilisations. Il est préférable pour moi de maintenir un tunnel à travers le programme externe ssh que d'essayer de le configurer en Python. – mvrak

0

J'ai eu même de sérieux problèmes à obtenir paramiko travailler aussi, mais a fini par le faire avec une autre bibliothèque (sshtunnel) qui enveloppe et simplifie le tunnel de paramiko.

Vous pouvez vérifier my answer dans une autre question similaire avec un exemple de code pour l'utiliser.