• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página
logo web Geoinnova

Geoinnova

Consultoría y Formación en SIG y Medio Ambiente

  • Geoinnova
    • Asociación
    • Equipo
    • Visor de proyectos Geoinnova
    • Geolibrería
    • Alianzas Estratégicas
  • Consultoría
    • Consultoría y Desarrollo en Sistemas de Información Geográfica
    • Consultora Ambiental
    • Turismo sostenible
    • Planificación urbana y ordenación del territorio
    • Planes Urbanos de Actuación Municipal – PUAM
    • Geomarketing
  • Servicios
    • Planero Web
    • QElectricGIS
    • Plugins
  • Formación
    • Todos los cursos
    • Webinars
    • Máster y Diplomas
    • Cursos de ArcGIS
    • Cursos de QGIS
    • Cursos de Teledetección
    • Cursos de Medioambiente
  • Medio Ambiente
    • Consultora Ambiental
    • Estudios ambientales para proyectos de energías renovables
    • Estudios de Impacto e Integración Paisajística
    • Evaluación Ambiental Estratégica de planes y programas
    • Estudio de Impacto Ambiental para proyectos
    • Cálculo huella de carbono
    • Educación Ambiental
    • Cursos de Medioambiente
  • Coworking
  • Blog
    • SIG
    • Medio Ambiente
    • Teledetección
    • Programación y Desarrollo SIG
    • Corporativo
  • Contacto
    • Soporte de Clientes – Tickets
Programación y Desarrollo SIG SIG

Cómo acceder a una base de datos remota mediante SSH en QGIS

21/12/2021 Deja un comentario

QGIS carece de la opción de crear túneles SSH a nivel de aplicación. Vamos a ver cómo hacer uno a nivel de sistema para que esto no sea un impedimento a la hora de conectarnos a bases de datos remotas.

Supongamos que queremos acceder a una base de datos espacial alojada en la nube mediante nuestro GIS de escritorio favorito. La manera mas simple y directa que conocemos es configurar en el propio GIS los parámetros de conexión utilizando la IP del servidor y el puerto de acceso a la base de datos. Pero el administrador de sistemas nos dice que por seguridad no puede abrir el puerto de PostgreSQL en el cortafuegos del servidor. La solución aquí es utilizar un túnel SSH, que en definitiva no es más que convertir un servicio remoto en un servicio local.

En este artículo veremos cómo crear un túnel SSH de este tipo que permita conectar QGIS con un base de datos PostGIS remota a través de un mecanismo de reenvío de puertos SSH (port forwarding) denominado SSH Tunneling, una alternativa segura de envío de información entre cliente y servidor en la que toda la información enviada y recibida va encriptada. En nuestro caso nos permitirá conectar de manera segura una máquina cliente con QGIS a una la máquina servidor que alberga la base de datos.

¿Qué es un túnel SSH?

SSH (Secure SHell) es un protocolo que permite conectarse de forma segura entre una máquina cliente y un servidor en el que toda la información viaja cifrada (a diferencia de otros sistemas menos seguros como Telnet). Hoy en día es una herramienta esencial para administrar servidores remotos.

Un túnel SSH es un método para crear una conexión SSH cifrada entre un cliente y una máquina servidor a través de la cual se pueden reenviar los puertos de servicios. Dado que el tráfico está encriptado, es bastante seguro conectarse a un servidor restringido para administrar una base de datos o usar cualquier otro servicio que necesitemos sin abrir un puerto en el firewall.

Los túneles SSH permiten realizar conexiones seguras a servidores y redirigir el tráfico no cifrado, proporcionando un medio para eludir las reglas de los firewalls que prohíben o filtran ciertos servicios.

Creando un túnel SSH para QGIS

Algunas aplicaciones clientes, como por ejemplo pgAdmin o DBeaver, ya contemplan estas situaciones y facilitan la creación de este tipo de conexiones seguras en su propia interface. No es el caso de QGIS, que a fecha de publicación de este artículo no dispone de la opción de crear un túnel SSH para conectarse a base de datos remotas dentro de la propia aplicación.

Afortunadamente disponemos de alternativas y crear este tipo de túneles es más fácil de lo que piensas.

PgAdmin 4 permite configurar conexiones de túnel SSH desde su propio entorno gráfico.
Algunas aplicaciones como pgAdmin 4 permiten configurar conexiones de túnel SSH desde su propio entorno gráfico.

Veamos un ejemplo. Supongamos que queremos conectarnos desde QGIS a un servidor remoto a través del puerto estándar de PostgreSQL 5432 y esto no nos está permitido por el firewall del servidor. Crearemos entonces un túnel SSH desde el puerto local 5555 (o cualquier otro libre) de nuestro equipo. Luego simplemente configuraremos QGIS para conectarnos a este puerto local con los parámetros de conexión de la base de datos.

Te puede parece un proceso confuso, pero quédate con la idea de que esto simplemente significa que cada vez que QGIS se conecte a este puerto local de nuestro equipo en realidad está accediendo a un puerto concreto del servidor remoto.

Lo primero que necesitamos es un cliente SSH. En Windows se ha venido utilizando tradicionalmente programas de terceros como Putty, pero desde Windows 10 versión 1803 ya viene con un cliente activado por defecto para utilizarlo desde PowerShell o CMD. Otras plataformas como Linux o macOS ya traían un cliente SSH instalado desde hace tiempo. En cualquiera de los casos abrimos una consola de comandos en nuestro equipo y escribimos un comando con la siguiente estructura:

ssh -L <local_port>:localhost:<remote_port> <user>@<remote_host>

El siguiente sería un ejemplo concreto:

ssh -L 5555:localhost:5432 foouser@203.0.113.0

Aquí mediante el parámetro -L del comando construimos el túnel. Indicamos que nuestro cliente SSH reenvíe el tráfico desde el puerto 5555 del equipo local al puerto 5432 del servidor remoto. A continuación indicamos el usuario del equipo remoto (foouser) con el que nos conectaremos al servidor y la IP pública o el hostname de este (203.0.113.0).

Seguidamente abrimos QGIS y realizamos una configuración básica de conexión a una base de datos PostGIS pero conectándonos a través del puerto local (en nuestro ejemplo el 5555 de localhost), desde donde direccionamos las peticiones al servidor. Escribiremos el nombre de la base de datos remota y el nombre de usuario y contraseña con el que accederemos a ella.

En QGIS nos conectaremos a través del puerto local que hayamos indicado en el comando SSH, en nuestro caso el 5555.
En QGIS nos conectaremos a través del puerto local que hayamos indicado en el comando SSH, en nuestro caso el 5555.

Una vez hecho esto, cuando desde QGIS accedamos a localhost:5555 en realidad estaremos accediendo a 203.0.113.0:5432 en el servidor.

Es importante recordar que este túnel es necesario tenerle siempre abierto mientras se usa QGIS. En el momento en que matemos el proceso SSH se cerrará el túnel y el GIS se desconectará de la base de datos.

Etiquetas: postgresql, qgis

Apúntate a nuestra newsletter semanal

"*" señala los campos obligatorios

Consentimiento*
Este campo es un campo de validación y debe quedar sin cambios.

Información legal

Cumplimos el RGPD (Reglamenteo General de Protección de Datos) y esta en la primera información que debes saber. Responsable: Asociación Geoinnova. Finalidad: Apuntarte en nuestra base de datos para poder enviarte nuestra newsletter y cualquier otra información de interes. Legitimidad: Nos das tu consentimiento para comunicarnos contigo. Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir tus datos. Para una información más ampliada entra a nuestra política de privacidad.

Artículos relacionados

Cursos SIG y MA Asociación Geoinnova
Agenda de cursos de Marzo 2023
23/02/2023
Cómo instalar y agregar nuevas fuentes en QGIS
29/11/2022
Cómo trabajar con nuestra base de datos PostgreSQL usando psql
08/11/2022

Emilio Gomez Fernandez

Emilio Gómez Fernández es GIS Project Manager en Alter Geosistemas. Es geógrafo con amplia experiencia profesional en el ámbito de la geomática y las tecnologías afines. Ha dirigido y participado en numerosos proyectos de consultoría e ingeniería en las fases de planificación, ejecución y control relacionados con el medio ambiente, la ordenación del territorio, los sistemas de transporte y la accesibilidad, los servicios urbanos y la divulgación del patrimonio. Colabora con Geoinnova en proyectos de formación y de desarrollo GIS.

Interacciones con los lectores

¿Quieres comentarnos algo? Adelante! Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Footer

Menú Legal

  • Aviso Legal
  • Política de privacidad
  • Política de cookies
  • Términos y condiciones

Otras páginas de interes

  • Promociones y descuentos en formación
  • Formación bonificada FUNDAE

Contacto

Calle Luis Morondo Urra nº 8 Bajo A
31006 Pamplona (Navarra)
info@geoinnova.org
+34 948 117 137

Horario de atención

Lunes a Viernes - 09:00 a 14:00 y de 16:00 a 19:00.
Fines de semana y Festivos - Exclusivamente por mail.
Horario de Verano (01 de julio al 30 de agosto): De lunes a viernes de 8 a 15h.

Síguenos en Redes Sociales

Apúntate a nuestra newsletter

"*" señala los campos obligatorios

Consentimiento*
Este campo es un campo de validación y debe quedar sin cambios.

Entidad adherida a Confianza Online Certificado de inscripción en el Registro de huella de carbono, compensación y proyectos de absorción Logo Plazox

© 2023 · Desarrollada por Geoinnova en colaboración con OikosMSP

Gestionar el Consentimiento de las Cookies
Utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. Lo hacemos para mejorar la experiencia de navegación y para mostrar anuncios personalizados. El consentimiento a estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar proveedores Leer más sobre estos propósitos
Preferencias
{title} {title} {title}