Java SSH隧道:第一跳用户名/密码,第二跳使用SSH密钥

Java SSH隧道:第一跳用户名/密码,第二跳使用SSH密钥,java,linux,ssh,sftp,ssh-tunnel,Java,Linux,Ssh,Sftp,Ssh Tunnel,对于我正在安装的第三方应用程序,我需要设置SFTP连接: 基本应用程序是在linux/JBOSS机器(机器a)上运行的java应用程序。此应用程序使用ftp连接到第二台centOS linux机器(机器B) 我面临的问题如下:第三方应用程序只支持使用用户名和密码的ftp授权,而目标机器(B)只允许使用提供的SSH密钥进行访问 我能想到的唯一解决方案是,通过机器A上的SFTP服务器将SFTP连接隧道化,这确实允许用户名+密码SSH。我不知道这是否可行,也不知道使用哪个工具来设置。注意,这必须是一个

对于我正在安装的第三方应用程序,我需要设置SFTP连接:

基本应用程序是在linux/JBOSS机器(机器a)上运行的java应用程序。此应用程序使用ftp连接到第二台centOS linux机器(机器B)

我面临的问题如下:第三方应用程序只支持使用用户名和密码的ftp授权,而目标机器(B)只允许使用提供的SSH密钥进行访问

我能想到的唯一解决方案是,通过机器A上的SFTP服务器将SFTP连接隧道化,这确实允许用户名+密码SSH。我不知道这是否可行,也不知道使用哪个工具来设置。注意,这必须是一个永久连接,所以应该设置为在服务器启动时工作

在只使用SSH密钥和mobaXterm之前,我已经设置了隧道连接,但我仍然不完全清楚内部工作原理

这种情况下的另一个挑战可能是我无法在机器B上进行根访问


那么我的问题是:是否可以设置隧道连接,使机器a上的应用程序可以使用用户名+密码连接到机器B,以及我需要什么才能使其正常工作?

是的,这是可能的。通常我使用以下结构:
ssh-N-l21:127.0.0.1:21ip\u address\u machine\u B
在这个命令中,您可以使用任何其他端口。

然后在机器A上,您需要连接到本地主机端口21

啊,我希望这样!连接到localhost:21是使用运行ssh命令的用户的凭据完成的?我认为您应该使用对ftp服务有效的凭据。好的,谢谢,在机器A上,每个用户都可以连接到ftp。我一进入机器B就会试试这个