staging.inyokaproject.org

Putty ssh Tunnel für sqlplus

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

may24x

Anmeldungsdatum:
26. April 2016

Beiträge: 116

Hi zusammen.

Auf ich versuche von meinem Win Laptop sql queries auf unserem prod Server abzusetzen. Leider ist der nicht direkt verfügbar.
Z.Z. mach ich 'ne ssh Verbindung auf unserem test-server auf und starte dort den sqlplus Client ...

Ich suche aber eine Lösung den Client Lokal auf meiner Kiste zu starten und via ssh-tunnel zum prod-server zu verbinden. Bisher haben sich jedoch alle "Tutorial" als nicht funktional erwiesen ...

Kennt jemand einen Weg wie's funktioniert ?
Sowohl der test als auch der prod server laufen mit RHEL 6.6 mit openssh-6.2

jug Team-Icon

Ehemalige
Avatar von jug

Anmeldungsdatum:
19. März 2007

Beiträge: 12335

Ich suche aber eine Lösung den Client Lokal auf meiner Kiste zu starten und via ssh-tunnel zum prod-server zu verbinden. Bisher haben sich jedoch alle "Tutorial" als nicht funktional erwiesen ...

Bevor wir jetzt die „Tutorials“ hier nochmal abtippen … beschreibe uns doch mal genau was du probiert hast und wie das mit dem „nicht funktional“ sich äußert. Sonst wiederholen wir ja nur Dinge die du schon versucht hast … ▶ Richtig fragen

Kennt jemand einen Weg wie's funktioniert ?

Prinzipiell ist ein Tunnel, oder vielleicht ist der Begriff „Port-Weiterleitung“ besser, so aufgebaut:

  1. Du hast einen Port auf einem Server, der aber von außen nicht erreichbar ist, sagen wir mal 1521 oder sowas. Du würdest also normalerweise deinen Client nehmen und auf <server_adresse>:1521 verbinden, der Server nimmt aber keine Verbindungen von außen an.

  2. Du willst einen Tunnel aufbauen und denkst dir dazu eine lokale Port-Nummer aus, sagen wir mal 8888.

  3. Jetzt baust du mit den drei Informationen einen Tunnel auf, trägst also die Server-Adresse, die entfernte Port-Nummer (vom Server-Dienst vorgegeben) und deine selbst ausgedachte lokale Port-Nummer ein.

Angenommen der Tunnel wurde erfolgreich aufgebaut, kannst du deinen lokalen Client einfach auf localhost:8888 verbinden. Die Verbindung kommt dann beim Server raus – der Server glaubt allerdings, dass die Verbindung vom Server selbst kommt. Dein lokaler Port wurde auf den Server weitergeleitet. Wichtig ist deshalb bei der Erstellung des Tunnels die richtige „Richtung“ gewählt wurde, also zum Beispiel ob du einen lokalen Port ans Zielsystem weiterleitest (wie im Beispiel) oder umgekehrt. Du möchtest anscheinend einen lokalen Port weiterleiten. 😉

Und nein, ich kenne mich mit PuTTY nicht gut genug aus um die GUI hier jetzt zu erklären, und du hast ja auch das Problem nicht genau beschrieben, deshalb nur eine prinzipielle Erklärung was so ein Tunnel überhaupt macht. Ich weiß, dass ich damit am Anfang Schwierigkeiten hatte das zu verstehen.

~jug

PS: bitte unterlasse die manuellen Zeilenumbrüche. Du nutzt die vollkommen unnötigerweise für Absätze, einfach eine Leerzeile in den Editor (zweimal ⏎ reicht vollkommen und ist auch leichter zu tippen. Der manuelle Zeilenumbruch ist fast immer unnötig (das ist der Grund weshalb der kaum dokumentiert ist). Bitte lesen und bessere Formatierungsmöglichkeiten wählen ▶ Forum/Syntax, danke.

may24x

(Themenstarter)

Anmeldungsdatum:
26. April 2016

Beiträge: 116

Nun, was ich suche ist folgendes:

Der Prod-Server ist nur vom Test-Server aus erreichbar (egal mit was)

Normalerweise öffen ich eine ssh Verbindung von meinem Win Laptop zum Test-Server und starte dort "sqlplus ..." Der läuft dann aber auf dem Test-Server und nicht auf meinem Laptop.

Also hätte ich gerne einen Tunnel "durch den Testserver" um von meinem Laptop aus direkt mit dem Prod-Server zu sprechen. (für sftp File Transfer geht das. Habe ich hier via WinSCP configuriert) Es ist also eine Port-Tunnelung zu einem dritten Rechner ...

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Soweit ich das sehe, brauchst Du zwei Dinge:

  1. Den Tunnel bzw. die Portweiterleitung (das macht ssh)

  2. Eine Konfiguration des Oracle-Clients auf dem Testrechner (da, wo Du SQL*Plus starten willst), so dass beim Zugriff auf die Zieldatenbank ein Zugriff auf einen lokalen Port (nämlich den weitergeleiteten) gemacht wird.

Edit: ggf. ist es noch einfacher, einen anderen Client zu nehmen, z.B. Oracle SQL Developer oder SQuirreL SQL.

Antworten |