在被建议停止使用Git部署到VPS后,我又回到了Rsync方法。不幸的是,Rsync 非常不友好,会发出不清楚的错误,有时错误消息与实际错误不匹配。所以,我不指望你会回答什么
rsync: Failed to exec r: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(85) [sender=3.1.3]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in IPC code (code 14) at io.c(235) [sender=3.1.3]
方法。
首先我需要检查语法。
我有使用Ubuntu 22.04的 VPS和使用Ubuntu 20.04 的WSL 。遵循基本的安全要求,在 VPS 中我有:
- 创建非root用户
- 使用密码创建 SSH 密钥
- 禁止任何用户通过密码登录
- 完全禁止root用户登录
04-StagingBuild
现在我需要将本地目录的内容部署到var/www/staging.example.com
VPS。不幸的是,我还没有找到“统一的正确语法”。这个版本
rsync -azver -i ~/.ssh/Example-Deployer ./04-StagingBuild/ [email protected]:/var/www/staging.example.com
原因
rsync: Failed to exec r: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(85) [sender=3.1.3]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in IPC code (code 14) at io.c(235) [sender=3.1.3]
还有一个版本--rsh=ssh
rsync -azver --rsh=ssh -i~/.ssh/Example-Deployer ./04-StagingBuild/ [email protected]:/var/www/staging.example.com
它导致
[email protected]: Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
由于敏感信息,我无法发布实际的终端输出,但我确信所有目录都存在。此外,正常的 SSH 登录也可以正常工作。
如果您需要我检查某些内容,请告诉我 - 我将提供尽可能多的详细信息。