如何使用私钥进行 rsync?

如何使用私钥进行 rsync?

我正在尝试从我的 MacOS 计算机 rsync 到在 Windows Azure 上运行的 Ubuntu 服务器。要 ssh 到它,我必须执行以下操作:

 $ ssh -i  myPrivateKey.key -p 22 [email protected]

我认为密钥文件可能是 X509 公钥,如果这有帮助的话(抱歉,我不是系统管理员)。无论如何,我可以使用上述命令成功 ssh。

现在我想将文件 rsync 到远程服务器。我是否需要以.key某种方式提供文件作为选项?

正常的 rsync 命令失败:

$ sudo rsync -avz -e my/file [email protected]:/my/path
    rsync: Failed to exec my/file: Permission denied (13)
rsync error: error in IPC code (code 14) at /SourceCache/rsync/rsync-42/rsync/pipe.c(86) [receiver=2.6.9]
    rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
    rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [receiver=2.6.9]

答案1

命令失败不是因为键错误,而是因为你告诉 rsync 运行my/file而不是ssh(通过使用-e选项,它会拾取其后的单词)。请先删除该-e选项。

由于rsync通常用于ssh连接,您可以配置两个都始终使用特定密钥连接到 cloudapp。例如,将其放在文件顶部~/.ssh/config

Host me.cloudapp.net
    Username me
    IdentityFile ~/my-cloudapp-key.key
    IdentitiesOnly yes

Username me部分还允许您me@在使用 ssh 或 rsync 时跳过添加操作。Plainrsync -avz my/file me.cloudapp.net:/my/path即可。


注意:SSH 密钥不是 X.509 证书;它们只是普通的 RSA 或 ECDSA 密钥对,没有任何其他信息。

相关内容