SSH 隧道:第一跳用户名/密码,第二跳使用 SSH 密钥
Posted
技术标签:
【中文标题】SSH 隧道:第一跳用户名/密码,第二跳使用 SSH 密钥【英文标题】:SSH tunneling: first hop username/password, second hop using SSH key 【发布时间】:2017-08-04 15:04:50 【问题描述】:对于我正在安装的第三方应用程序,我需要设置 SFTP 连接:
基础应用程序是一个运行在 linux/JBOSS 机器(机器 A)上的 java 应用程序。此应用程序使用 (s)ftp 连接到第二台 centOS linux 机器(机器 B)
我面临的问题如下:第三方应用程序只支持使用用户名和密码的(s)ftp授权,而目标机器(B)只允许使用提供的SSH密钥访问。
我能想到的唯一解决方案是通过机器 A 上的 SFTP 服务器建立 SFTP 连接隧道,该服务器允许用户名+密码 SSH。我不知道这是否可能,也不知道使用哪个工具来设置它。请注意,这必须是永久连接,因此应设置为在服务器启动时工作。
在仅使用 SSH 密钥和 mobaXterm 之前,我已经建立了隧道连接,但内部工作原理对我来说仍然不是很清楚。
在这种情况下的另一个挑战可能是我无法在机器 B 上进行 root 访问。
所以我的问题:是否可以设置隧道连接,使机器 A 上的应用程序可以使用用户名+密码连接到机器 B,我需要得到什么这行得通吗?
【问题讨论】:
【参考方案1】:是的,这是可能的。通常我使用以下结构:
ssh -N -L 21:127.0.0.1:21 ip_address_machine_B
在此命令中,您可以使用任何其他端口。
然后在 machine_A 上你需要连接到 localhost 端口 21
【讨论】:
啊,我希望有这样的东西!并且连接到 localhost:21 是使用运行 ssh 命令的用户的凭据完成的? 我认为您应该使用对 ftp 服务有效的凭据。 好的,谢谢,在机器 A 上,每个用户都可以连接到 ftp。一旦我可以访问机器 B 就会尝试这个以上是关于SSH 隧道:第一跳用户名/密码,第二跳使用 SSH 密钥的主要内容,如果未能解决你的问题,请参考以下文章
CobaltStrike使用-第八篇-隧道技术(socks转发ssh隧道CS转发监听器)
CobaltStrike使用-第八篇-隧道技术(socks转发ssh隧道CS转发监听器)