我使用命令通过 rsync 和 ssh 密钥传输文件:
sudo rsync -P -e 'ssh -i <absolute path to keyfile>' <file> user@<server>
我需要第一个 sudo,因为我要复制的文件属于 root 或其他用户。过去几个月它运行良好,但大约两周前我收到了来自密钥文件的拒绝连接(它具有 600 个权限,但属于使用此命令的用户)。确切的错误消息是:
<IP address>
ssh: connect to host <IP address> port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]
我发现它现在可以在 ssh 命令前面使用第二个 sudo 了:
sudo rsync -P -e 'sudo ssh -i <absolute path to keyfile>' <file> user@<server>
但我不明白为什么突然间一切都变了,我找不到任何相关信息。为什么我突然需要第二个 sudo 才能使其工作?我的猜测是,尽管整个命令都使用 sudo 运行,但“ ”中的 ssh 命令无法访问密钥文件,但如前所述,它在大约两周前一直有效。到目前为止,我的目标是完全不使用 sudo,但现在我不确定如何实现这一点。