![SSH/scp/rsync 如何加密?](https://linux22.com/image/1285497/SSH%2Fscp%2Frsync%20%E5%A6%82%E4%BD%95%E5%8A%A0%E5%AF%86%EF%BC%9F.png)
并且,只需确保我正确执行此操作,如果我使用此命令从服务器复制文件:
$ rsync [email protected]:~/credit_card_numbers.txt ./
[并不是说我的服务器上真的有这个文件——只是一个机密文档的示例 xD ].txt 文件 [或任何类型的文件] 将不是以明文形式发送,但会被加密吗?使用我的密钥文件或 ~/.ssh 中的其他内容,对吗?而且窥探连接的人(政府、我网络上的人等)都无法查看该文件?
答案1
随机生成的对称会话密钥用于加密客户端和服务器之间的通信。在连接期间,双方共享密钥,会话结束时,密钥将被销毁。
SSH 版本 1 (SSH-1) 仅使用一个密钥,而 SSH-2 有多个密钥:每个方向(客户端->服务器、服务器->客户端)以及其他用于完整性检查的密钥。
SSH-2 为 SSH 连接的任一侧提供了一种启动重新密钥(“会话重新密钥”)的方法,从而导致客户端和服务器协商新的会话密钥。
来源:O'REILLY - SSH 权威指南
正如 EightBitTony 提到的,使用scp
。
答案2
rsync 可能未加密。它通常如果它没有与 rsync 服务器通信,则默认通过 ssh 运行(因此是加密的),但它可能已配置/编译为使用 rsh 或其他远程 shell。
ssh(以及通过 SSH 运行的 scp)使用公钥/私钥加密,没有私钥就无法解释通过连接传输的任何内容。人们不仅无法读取文件内容,甚至无法知道您正在传输文件,他们只能看到加密的流量。
可以肯定的是,您可以使用
rsync -e ssh .....................