如何使用不同的身份验证方法创建双 ssh 隧道?

如何使用不同的身份验证方法创建双 ssh 隧道?

我有我的本地机器,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.

相关内容