用于将文件从一台Linux机器复制到另一台Linux机器的Java代码

Modified on: Sat, 30 Jun 2018 11:30:00 +0800

我正在寻找将代码文件复制到远程linux系统的java代码。我通过传递Runtime.getRuntime().exec()命令尝试了scp函数,但每次运行程序时都要求输入远程系统密码。我想避免这种情况。

我查看了Jsch库 - 使用它我可以登录到远程系统 - 但我无法将文件复制到远程系统。登录后,我可以将scp发送到我的主机,但同样需要主机系统用户名和密码。但是,我只有远程系统的信息。

作者:Braiam,Thushi

最佳答案

将文件从一个主机复制到另一个主机需要远程主机上的守护程序,实现一些应用程序级文件传输协议。无论您要使用哪种语言与该远程守护进程通信,这都是一项要求。

您对Linux系统的选择是:

  • SSH。这需要远程端的SSH守护进程(比如openssh-server)。由于ssh是为安全性而设计的,因此您必须配置远程主机以使用密码或私钥对您进行身份验证。实际上复制文件可以通过scp实用程序或ssh客户端库完成(jsch就是这样的一个例子)。
  • NFS。远程主机安装守护程序(例如samba)并共享一些文件。您的本地计算机(cifs-utils软件包具有此功能)可以在本地文件系统上安装远程位置。这样,您只需在本地复制文件即可将文件复制到远程主机。身份验证是可选的,文件通过网络进行简单发送。
  • FTP。 ftp服务器安装在远程端,并配置为允许某些用户访问某些位置。然后,您可以使用任何ftp客户端或某些ftp客户端库(例如,来自Apache项目的commons-net库)连接到远程ftp服务器并复制文件。身份验证是可选的,文件通过网络进行简单发送。

所有这些似乎都是很多工作,而且事实上,因为没有一个广泛采用的标准化协议可以在大多数系统上实现和配置开箱即用。

作者:SkyDan

相关问答

添加新评论