right postgres longitud example concatenar cadena postgresql ssh tunnel razorsql

longitud - PostgreSQL a través del túnel SSH



split postgresql example (1)

Me gustaría utilizar RazorSQL para conectarme a mi base de datos que se ejecuta en un servidor remoto. Creo un túnel SSH en mi servidor local con el siguiente comando:

ssh -L 1111:remote.server.com:5432 [email protected]

Configuro mi conexión a través de la GUI de RazorSQL, especificando localhost como el host y 1111 como el puerto. Cuando hago clic en "Conectar", aparece el siguiente mensaje de error:

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

donde aaa.bbb.ccc.ddd es la dirección IP de un servidor remoto.

Además, no tengo permitido cambiar el contenido de mi archivo pg_hba.conf . Así es como se ve en este momento:

# 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@

¿Es posible conectarme al servidor de la base de datos a través del túnel SSH usando mi configuración actual y sin modificar la configuración del servidor?


Su pg_hba.conf parece permitir conexiones de localhost. La forma más fácil de hacer que aparezcan tus conexiones de túnel SSH desde el host local es hacer que sean locales.

El siguiente comando SSH se conecta con remote.example.com como usuario "usuario" y hace que su cliente ssh escuche en localhost, puerto 1111 / tcp. Cualquier conexión hecha a ese puerto se reenviará a través del túnel ssh, y en el lado del servidor ssh las conexiones se harán a localhost, puerto 5432 / tcp. Como nos estamos conectando a localhost, las conexiones parecerán también ser de localhost, y deben coincidir con su línea pg_hba.conf existente.

ssh -L 1111:localhost:5432 [email protected]

Si se espera que este sea un túnel de larga ejecución, recomendaría utilizar autossh

Para conectarse usando el cliente psql en el host donde está ejecutando el cliente ssh, use algo como esto:

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

A continuación, se le solicitará la contraseña del usuario de la base de datos.

Alternativamente, puede agregar una línea de línea a un archivo llamado .pgpass en su directorio de inicio en el cliente donde está ejecutando psql:

localhost:1111:database-name:your-db-user:your-db-password