确保持久的反向SSH连接以进行pipe理

我在我不能控制的环境中部署了演示Ubuntu 10.04 LTS服务器,并且希望有一个简单而安全的方式来pipe理这些机器,而不必让目标防火墙转发端口22进行SSH访问。

我已经find了一些指导来做到这一点与反向端口(例如howtoforge反向ssh隧道指南 ),但我关心的隧道自动打开所需的存储SSH证书的安全性

如果机器受到威胁(主要担心的是机器的物理访问超出了我的控制范围),我怎样才能阻止某人使用存储的凭证在反向ssh隧道目标机器中四处寻找?

是否有可能确保这个设置,或者你会build议一个替代方法?

您可以使用autossh来维护一个反向隧道,这将允许您使用SSHlogin。 隧道应该使用一个SSH密钥来创build,这个密钥在~/.authorized_keys有一定的限制,所以唯一可以做的就是build立隧道(详见man authorized_keys )。 下面只允许从1.2.3.4开始使用这个键,并且不允许任何命令被执行。

 from="1.2.3.4",command="/bin/false",no-agent-forwarding,no-pty,no-X11-forwarding ssh-rsa AAAA... 

我会使用OpenVPN,因为我知道它做了什么,我知道它可以做我所需要的东西,并且可以很容易地得到保护 – 正如您正确地指出的那样,默认情况下SSH凭证会让您进入机器本身,不是一个好主意。 我知道SSH的更新版本提供了某种通用的VPNfunction,毫无疑问,有很多方法可以保护您不想做的事情,但我不会冒这个险。 去你所知道的。

在你的防火墙上打一个洞或者在旁路上设置一个代理。 是的,你可以有反向的SSH连接 – 但这只是一个隧道套接字连接 – 你仍然需要运行一些协议(是的,你可以在SSH连接上运行ssh,或者甚至可以运行pppd进行VPN连接) – 当一端断开时试图保持/恢复连接将很难自动化。 它只能在你周围build立大量的代码的时候才能工作 – 在这一点上你可能会破坏安全性。 这实在是不值得的。