ssh:通过远程服务器隧道到另一台服务器

时间:2015-04-20 08:12:14

标签: ssh

我在端口4000上使用用户remote ssh访问我的工作网络:

ssh remote@123.123.123.123 -p 4000

使用ssh密钥完成身份验证

但是,我目前在中国,这种联系非常不稳定。

我们有一个位于香港的云端服务器,我们可以穿过它,提供更稳定的连接

我可以使用相关密码以用户foo登录。

ssh foo@100.100.100.100

如何将2组合在一起以便我可以通过ssh从本地计算机以123.123.123.123:4000用户remote通过100.100.100.100:22以用户{{1}打开交互式shell会话}?

修改

我无法对以下答案发表评论,因为Javascript在中国已被屏蔽,评论使用Javascript。

直接隧道不起作用,因为使用我的ssh密钥进行身份验证。

当我从foo启动到remote@123.123.123.123的ssh会话时,身份验证失败

foo@100.100.100.100

我不知何故需要我的ssh会话看起来像是来自我的本地主机,使用我的ssh密钥,但需要通过Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 进行隧道传输

1 个答案:

答案 0 :(得分:2)

你应该能够像这样把它们放在一起

ssh -t foo@100.100.100.100 ssh remote@123.123.123.123 -p 4000

因为ssh命令允许您指定在远程服务器上运行的命令。

编辑:

如果你本地只有你的ssh密钥(123.123.123.123的密钥不在云服务器上),你应该能够添加-A来转发身份验证,所以命令将是

ssh -At foo@100.100.100.100 ssh remote@123.123.123.123 -p 4000

请注意,为了实现此目的,您需要在本地运行ssh-agent,并且必须使用ssh-add注册您的密钥(您可以使用ssh-add -L检查您的密钥是否可用到ssh代理商。)