You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Rsync后无法SSH连接远程主机的问题求助

执行rsync后远程主机SSH私钥验证失败,疑似.ssh目录被清空的问题分析

我确实见过不少用户踩过这个rsync的坑!你用的命令rsync -av /foo/bar/ user@remotehost:.有个非常容易忽略的细节:本地路径末尾的/会让rsync把/foo/bar/目录下所有内容直接同步到远程用户的主目录(也就是~,.在这里等价于主目录),而不是在主目录下创建一个bar子目录再同步内容。

如果你的本地/foo/bar/目录里刚好存在和远程主目录重名的文件或目录(比如.ssh),rsync默认会直接覆盖远程的对应内容。要是本地的/foo/bar/.ssh是空的,或者权限配置异常,远程主机的.ssh目录就会被替换成空的,这自然会导致私钥验证失败,没法通过SSH连接了——2015年那篇帖子大概率也是用户踩了这个同名覆盖的坑。

解决与后续规避建议

  • 紧急恢复:先想办法重新获得远程主机的访问权限,比如联系主机管理员协助,或者如果远程主机还开启了密码登录,用密码登录后恢复.ssh目录的内容(比如从备份里找回authorized_keys、私钥文件等),同时一定要设置正确的权限:.ssh目录权限设为700,目录内的文件(如authorized_keys)设为600,否则SSH会拒绝使用这些文件。
  • 修正rsync命令写法:
    • 如果你想把本地/foo/bar/下的内容同步到远程主目录的bar子目录中,应该写成:
      rsync -av /foo/bar/ user@remotehost:~/bar/
      
    • 如果你想把整个bar目录同步到远程主目录下,就去掉本地路径末尾的/:
      rsync -av /foo/bar user@remotehost:~
      
  • 提前验证操作:可以给rsync加上--dry-run参数先模拟执行,查看会同步哪些文件、覆盖哪些内容,确认没问题后再执行真实同步,避免误操作。

内容的提问来源于stack exchange,提问作者user2905726

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:23:20