在使用 rsync 之前我应该​​了解哪些网络知识?

在使用 rsync 之前我应该​​了解哪些网络知识?

我的朋友刚刚告诉我有关 rsync 的信息,我尝试在命令行中使用它。我能够在自己的计算机上将文件从一个地方复制到另一个地方,但是当我尝试将文件“rsync”到同一 wifi 上的另一台计算机时,它不允许我这样做。

它说了类似“那台计算机拒绝了你。ssh 问题”之类的话,我记不清具体是什么了。但 ssh 对我来说仍然是一个困难的概念。我不知道把密钥放在哪里,也不知道如何查看它们是否有问题。我几乎对 wifi 或网络一无所知。

了解网络: 当我以前使用 Windows 时,我不得不使用 PuTTY。而且我已从 MySQL Workbench 连接到 AWS RDB 实例。我必须了解 IP 地址和端口。我对 HTTP 和 URL 有基本的了解。我使用过几次 ssh keygen。

但当谈到一般的网络时,我不知道从哪里开始。在使用 rsync 之前我应该​​知道什么/应该熟悉哪些工具?

*编辑我问这个问题的原因是:我可以查找错误,阅读 rsync 的文档,并可能让它工作。但如果我这样做,每次尝试使用 rsync 时我可能会遇到问题。然后,我可以像使用其他工具一样逐个学习问题。但我认为我可以避免这种学习方式,并且希望在尝试使用网络之前学习正确的网络知识,从而节省一些时间。

答案1

你应该知道:

  • 访问远程系统rsync默认使用 SSH 协议

  • SSH 协议实现(默认情况下)会验证服务器和客户端的身份

    • 验证服务器、客户端使用首次使用时信任-/.ssh/known_hosts信任模型,默认情况下它会在文件中记住它所连接的服务器

    • 如果你用另一个服务器(使用相同的名称或 IP 地址)替换该服务器,客户端将会发出抱怨并要求你手动从文件中删除该-/.ssh/known_hosts条目

  • 客户端可以使用基于密码或基于密钥的身份验证进行身份验证

    • 基于密码的身份验证是被认为不太安全(尽管它本身并不是不安全的)

    • 对于基于密钥的身份验证,您需要使用两个密钥:公钥和私钥(您可以使用ssh-keygen命令通常在客户端上)

    • 你将公钥(-/.ssh/id_rsa.pub客户端文件的内容)添加到-/.ssh/authorized_keys服务器上帐户主目录中的文件中(同样是默认的),或者你可以使用ssh-copy-id命令为你做这件事

    • 你通常将私钥存储在-/.ssh/id_rsa客户端

    • 您应该考虑使用密码保护私钥(您可以进一步配置 GPG 钥匙串,让它在指定的时间内为您记住密码)

  • 服务器 SSH 守护进程配置存储在/etc/ssh/sshd_config

  • SSH 客户端配置可以存储在~/.ssh/config

  • SSH 的大部分问题都与身份验证有关,如果遇到任何问题,您应该尝试使用ssh命令连接到远程计算机并添加-vvv选项以显示详细消息,尝试说明原因,并将结果包含在 StackExchange 或 AskUbuntu 上的问题中,如果您无法自己识别问题

  • 以上内容描述了默认或典型场景,rsync可能配置为使用不同的传输协议或直接通过 TCP 使用rsync://地址;SSH 可以配置大量影响操作的设置

相关内容