我在端口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).
进行隧道传输
答案 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代理商。)