电子说
要实现 rsync 的免密传输(同步)文件,你需要设置 SSH 免密登录。这样,rsync 就可以在不需要输入密码的情况下通过 SSH 连接到远程服务器并传输文件。以下是设置 SSH 免密登录的步骤。
生成 SSH 密钥对。在本地机器上生成 SSH 密钥对(如果你还没有的话):
ssh-keygen -t rsa
在提示时,你可以按回车接受默认的文件路径,或者指定一个新的路径。然后设置一个密码保护你的密钥(这对于安全性是一个好的实践),或者留空以创建一个无密码的密钥。
复制公钥到远程服务器。将你的公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中:
ssh-copy-id user@remotehost
这里的 user 是你远程服务器上的用户名,remotehost 是远程服务器的地址。如果你的 SSH 密钥不是默认的 ~/.ssh/id_rsa,你可能需要指定私钥的路径。
测试免密登录。测试你是否能无需密码登录到远程服务器:
ssh user@remotehost
如果一切设置正确,你应该能够无需输入密码就登录到远程服务器。
使用 rsync 进行同步。现在你可以使用 rsync 进行文件同步,而不需要输入密码。以下是一些基本的 rsync 命令示例:
同步单个文件:
rsync -avz /path/to/local/file user@remotehost:/path/to/remote/directory
同步整个目录:
rsync -avz /path/to/local/directory user@remotehost:/path/to/remote/directory
同步时排除某些文件或目录:
rsync -avz --exclude 'pattern' /path/to/local/directory user@remotehost:/path/to/remote/directory
使用 --delete 选项同步并删除远程服务器上多余的文件:
rsync -avz --delete /path/to/local/directory user@remotehost:/path/to/remote/directory
使用 --progress 选项显示传输进度:
rsync -avz --progress /path/to/local/directory user@remotehost:/path/to/remote/directory
确保替换 /path/to/local/directory 和 /path/to/remote/directory 为你的实际路径,user 和 remotehost 为远程服务器的实际用户名和地址。
通过以上步骤,你可以实现 rsync 的免密传输(同步)文件。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !