首页 › Category Archives › rsync

通过ssh用rsync无密码传输文件

在linux平台上常用rsync协议来同步文件和目录,’rsync’也是各种linux发行版标配的命令。当我们基于linux平台开发应用程序时,常常需要从Java或者Python代码中调用rsync命令来实现文件的传输。

例如,假设我们要按照如下需求来传输文件:

  • 有两台机器:localhost和remotehost
  • Java程序deploy在localhost上,通过rsync将本机文件传送到remotehost,或者从remotehost pull文件到localhost
  • rsync通过ssh连接remotehost
  • 在remotehost有个叫test的帐户,专门用来rsync传输文件,只能用密钥文件登陆
  • 最重要的是,在rsync连接过程中不需要输入test的帐户密码,否则密码输入界面会block住Java程序的运行

要实现rsync的无密码传输,基本思路是用一对公私钥来代替帐户密码,实现ssh连接时的认证。
继续阅读 »