更新时间:2023-01-20 07:55:46
是的,这是可能的。例如。在Linux上,运行
ssh -N -Llocalport:dbserver:dbport yourname @ connectionserver
$ p>其中
在Windows上使用Plink(与Putty一起使用)可以做到这一点:
plink -N -L localport:dbserver:dbport yourname @ connectionserver
在两台计算机(您的本地计算机和您有权访问的服务器)上执行此操作以链接ssh隧道。示例:
连接服务器(假设Linux):
ssh - N -L1521:dbserver:1521 dblogin @ dbserver
您的电脑:
plink -N -L 1521:connectionserver:1521 connlogin @connectionerver
tnsnames.ora条目必须看起来像运行一个本地数据库,例如
prodoverssh =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)
I have SSH access to 'public' server, which is also the gateway to company network. There is another server in the network, where local Oracle Database server is running (There is no access from outside of this server, only localhost DB connections are accepted). And of course, I have another SSH access to this server.
Is there any way to join to this Oracle Database 11g Server from outside of the network ? I am asking if there is something like ssh tunnel chain, and how i configure it. This can be usefull, for example, for TOAD for Oracle (ORACLE client).
EDIT: Here is image
Thanks
Yes, it's possible. E.g. on Linux, run
ssh -N -Llocalport:dbserver:dbport yourname@connectionserver
where
The same can be done on Windows using Plink (which comes with Putty):
plink -N -L localport:dbserver:dbport yourname@connectionserver
Do this on both machines (your local machine and the server you have access to) to chain the ssh tunnels. Example:
Connection server (assuming Linux):
ssh -N -L1521:dbserver:1521 dblogin@dbserver
Your PC:
plink -N -L 1521:connectionserver:1521 connlogin@connectionserver
The tnsnames.ora entry must look like you are running a local database, e.g.
prodoverssh =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)