SSHトンネルチェーン(ダブルトンネル、会社ネットワークのサーバー)を介してOracleデータベース11Gサーバーに接続するにはどうすればよいですか?

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

質問

「パブリック」サーバーへのSSHアクセスがあります。これは、会社ネットワークへのゲートウェイでもあります。ネットワークには別のサーバーがあります ローカル Oracle Database Serverが実行されています(このサーバーの外部からのアクセスはなく、LocalHost DB接続のみが受け入れられます)。そしてもちろん、このサーバーへの別のSSHアクセスがあります。

ネットワークの外側からこのOracleデータベース11Gサーバーに参加する方法はありますか? SSHトンネルチェーンのようなものがあるかどうか、どのように構成するかを尋ねています。これは、たとえば、Oracle(Oracle Client)のToadにとって有用です。

編集: これが画像です

alt textありがとう

役に立ちましたか?

解決

はい、それは可能です。例えば、Linuxで、実行します

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

どこ

  • ローカルポートは、転送されるマシン上のポートです(Oracle Runningのローカルインスタンスがない場合は1521になります)
  • dbserverはデータベースサーバーの名前またはIPです
  • dbportはデータベースのポートです(通常1521)
  • YourNameはConnectionServerのログインです
  • ConnectionServerは、SSHアクセスがあるマシンです

Plink(Puttyが付属している)を使用してWindowsで同じことができます。

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

SSHトンネルをチェーンするために、両方のマシン(ローカルマシンとアクセスできるサーバー)でこれを行います。例:

接続サーバー(Linuxを仮定):

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

あなたのPC:

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

tnsnames.oraエントリは、ローカルデータベースを実行しているように見える必要があります。

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

他のヒント

ありがとう!

私は呼びました ssh -N -LXXXX:server:YYYY login@server 2回。

最初に、電話しました

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

私のPCで。

次に、このサーバーで(SSHセッション中)、私は電話しました

ssh -L 9997:localhost:1521 root@192.168.105.111

192.168.105.111は、Oracleが実行されているサーバーです。

だから私がしたことは、リダイレクトに従うことです:

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

そこで、ポート9998のローカルPCでOracle Accessを取得しました!

追加することもできます -f バックグラウンドでSSHコマンドを実行するオプション。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top