我有我的本地机器,host1 和 host2。
- 主机 2 只能从主机 1 访问
- 我可以从本地计算机访问 host1
- host1正在使用私钥身份验证方法
- host2 正在使用密码
- host1 和 host2 有不同的用户名
- 我需要从本地计算机访问在 host2 上的端口 1529 上运行的服务
因此,我可以通过以下方式连接到 host1:
ssh -i path_to_key user1@3host1
并通过以下方式从 host1 到 host2:
sshpass -p 'my-pass' ssh user2@host2
到目前为止,我已经尝试过以下命令但没有成功:
ssh -i path_to_key -L 1529:host1:1529 user1@host1 sshpass -p 'my-pass' ssh -L 1529:host2:1529 user2@host2
有任何想法吗?
答案1
您真的需要通过 SSH 连接到第二台计算机以访问其服务吗?
在我看来,更简单的方法是在第一台主机上设置隧道,然后从那里查询 host2 上的服务。在这种情况下,您应该能够使用:
ssh -i path_to_key -L 1529:host2:1529 user1@host1
然后,让 ssh 从您的工作站在后台运行,类似的操作telnet localhost 1529
会将您的连接转发到host2:1529
.