¿Cómo puedo conectar al servidor de Oracle Database 11g a través de la cadena ssh túnel (túnel doble, un servidor de red de la empresa)?

StackOverflow https://stackoverflow.com/questions/3653788

Pregunta

Tengo acceso SSH al servidor 'público', que es también la puerta de entrada a la red de la empresa. Hay otro servidor en la red, donde locales servidor de base de datos Oracle se está ejecutando (No hay acceso desde fuera de este servidor, sólo se aceptan conexiones localhost DB). Y, por supuesto, tengo otro acceso SSH a este servidor.

¿Hay alguna manera de unirse a esta base de datos Oracle 11g servidor desde fuera de la red? Estoy preguntando si hay algo así como la cadena de túnel SSH, y cómo configurarlo. Esto puede ser muy útil, por ejemplo, para SAPO para Oracle (cliente ORACLE).

EDIT: Aquí está la imagen

text alt Gracias

¿Fue útil?

Solución

Sí, es posible. P.ej. En Linux, ejecute

ssh -N -Llocalport:dbserver:dbport yourname@connectionserver

donde

  • localport es el puerto de la máquina que se transmitirá (puede ser 1521 si no hay una instancia local de Oracle en ejecución)
  • dbserver es el nombre o dirección IP del servidor de base de datos
  • dbPort es el puerto de la base de datos (generalmente 1521)
  • sunombre es el login en el connectionServer
  • connectionServer es la máquina donde se tiene acceso ssh

Lo mismo se puede hacer en Windows utilizando Plink (que viene con masilla):

plink -N -L localport:dbserver:dbport yourname@connectionserver

Para ello, en ambas máquinas (el equipo local y el servidor tiene acceso a) a la cadena de los túneles ssh. Ejemplo:

servidor de conexión (suponiendo Linux):

ssh -N -L1521:dbserver:1521 dblogin@dbserver

Su PC:

plink -N -L 1521:connectionserver:1521 connlogin@connectionserver

La entrada tnsnames.ora debe parecer que está ejecutando una base de datos local, por ejemplo.

prodoverssh =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = prod)
    )
  )

Otros consejos

Gracias!

Me llama ssh -N -LXXXX:server:YYYY login@server dos veces.

En primer lugar, llamé

ssh -L 9998:127.0.0.1:9997 login@gate.company.cz

en mi PC.

A continuación, en este servidor (durante la sesión de SSH), que se llama

ssh -L 9997:localhost:1521 root@192.168.105.111

donde es 192.168.105.111 servidor donde ORACLE estaba en marcha.

Así que lo que hice es la redirección siguiente:

1521 (COMPANY ORACLE SERVER) 
  -> 9997 (COMPANY GATEWAY SERVER)
     -> 9998 (LOCAL PC)

Así que me dio acceso ORACLE en mi PC local en el puerto 9998!

Puede añadir además la opción -f el que ejecute el comando ssh en el fondo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top