PostgreSQL via le Tunnel SSH

J'aimerais utiliser RazorSQL pour me connecter à ma base de données qui fonctionne sur un serveur distant. J'ai créer un tunnel SSH sur mon localhost avec la commande suivante:

ssh -L 1111:remote.server.com:5432 myuser@remote.server.com

je configure ma connexion via L'interface graphique de RazorSQL, en spécifiant localhost comme l'hôte et 1111 comme le port. Lorsque je clique sur "Se Connecter", le message d'erreur suivant apparaît:

ERROR: An error occurred while trying to make a connection to
the database: 

JDBC URL: jdbc:postgresql://localhost:1111/myuser

FATAL:
no pg_hba.conf entry for host "aaa.bbb.ccc.ddd",
user "myuser", database "mydatabase", SSL off

aaa.bbb.ccc.ddd est L'adresse IP d'un serveur distant.

qui plus est, Je ne suis pas autorisé à changer le contenu de mon pg_hba.conf fichier. C'est à ça que ça ressemble en ce moment:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
@remove-line-for-nolocal@local   all         all                               @authmethod@
# IPv4 local connections:
host    all         all         127.0.0.1/32          @authmethod@
# IPv6 local connections:
host    all         all         ::1/128               @authmethod@

est-il possible de se connecter au serveur de base de données via le tunnel SSH en utilisant ma configuration actuelle et sans modifier la configuration du serveur?

33
demandé sur Priidu Neemre 2013-05-30 16:10:16

1 réponses

Votre pg_hba.conf semble autoriser les connexions depuis localhost. La manière la plus simple de faire apparaître vos connexions tunnel SSH à partir de localhost est de les rendre localhost.

la commande SSH suivante se connecte à remote.example.com comme utilisateur "user", et fait écouter votre client ssh sur localhost, port 1111/tcp. Toute connexion faite à ce port sera transmise par le tunnel ssh, et du côté du serveur SSH, les connexions seront faites à localhost, port 5432 / tcp. Puisque nous nous connectons à localhost, les connexions apparaîtront également à partir de localhost, et devraient correspondre à votre pg_hba existant.conf la ligne.

ssh -L 1111:localhost:5432 user@remote.example.com

Si c'est censé être un long tunnel, je vous conseille d'utiliser autosh

pour vous connecter en utilisant le client psql sur l'hôte où vous exécutez le client ssh, utilisez quelque chose comme ceci:

psql -h localhost -p 1111 -U your-db-username database-name

vous devriez alors être invité pour l'utilisateur de votre base de données le mot de passe.

alternativement, vous pouvez ajouter une ligne suivante à un fichier appelé .pgpass dans votre répertoire personnel sur le client où vous lancez psql:

localhost:1111:database-name:your-db-user:your-db-password
59
répondu jeff 2013-05-30 19:30:42