通过 SSH 从外部访问内部服务器

通过 SSH 从外部访问内部服务器

问题如下:

我正在使用 Ubuntu Linux。

我在家工作,需要访问公司网络内的 PostgreSQL 数据库。将该数据库服务器称为 X。出于安全原因,只有一台机器可以通过 ssh 从外部访问,将其称为 Y。

因此场景是:Home <--SSH--> Y <-----> X(DB)

我认为像 SSH 转发(在 .ssh/config 中配置)之类的东西可以帮助解决这个问题,但我不确定如何做到这一点,有什么想法吗?

答案1

解决方案如下: http://www.spencerstirling.com/computergeek/sshtunnel.html

它正在通过网关进行 SSH 隧道转发。对于上述场景,您需要发出以下命令:

ssh -N -L 5555:X:5432 user@Y

其中 X 是用于从 Y 寻址的数据库服务器的名称。5555 只是您家用机器上未使用的某个任意端口,而 5432 是 X 上的 PostgreSQL 数据库服务器正在监听的端口。发出此命令时,系统将要求您输入密码,这是您用于登录 Y 的密码。

PostgreSQL 客户端(以 pgAdmin 为例)配置如下:主机:localhost 端口:5555 用户名:数据库用户名 密码:数据库密码

答案2

你可以使用反向 SSH 隧道来突破公司防火墙。在公司内部执行此操作:

ssh -nNT -R 5000:localmachinename:22 [email protected]

登录后,您可以通过以下方式从家里进行连接:

ssh -p5000 localhost

相关内容