aut*_*tix 1 authentication ssh github
如果按照GitHub的HOWTO“生成SSH密钥”,你在你得到三个文件~/.ssh目录:known_hosts,id_rsa,和id_rsa.pub。
该文件known_hosts用于服务器身份验证,id_rsa用于客户端身份验证(这是一篇解释差异的文章)。
我为什么要创建/为什么 GitHub 确实需要——主机和用户身份验证文件?GitHub 身份验证是如何工作的?
谢谢
这只是普通的旧 SSH 身份验证;没有什么是特定于 GitHub 的。
id_rsa和id_rsa.pub是您的密钥的两半:私钥和公钥。实际上,公钥是私钥的锁。您将锁(公钥)放在您想要轻松访问的任何服务器上,而不必担心其他人会看到它,因为它只是一把锁。您将(私有)密钥保存在您的机器上,并使用它来登录这些服务器;他们看到你有一把适合锁的钥匙,就让你进去。
(并不是说你应该把你的公钥放在完全不可信的机器上;有一些恶意的技巧可以利用像这样的快捷方式ssh -A。)
known_hosts实际上与此没有太大关系;它只是ssh存储您连接到的所有服务器的指纹的地方,因此如果指纹发生变化,它会发出一个可怕的警告。(这意味着它不是同一台机器:服务器端发生了根本性的变化,或者您的连接被劫持了。)
因此,无论如何,Git 本身理解的协议之一是 SSH。当您git@github.com:...用作存储库 URL 时,Git 只是通过 SSH 进行连接。当然,GitHub 不希望你在他们的机器上乱搞,所以他们只让你做 Git 的事情,而不是一个完整的 shell。
像往常一样,Arch wiki在这方面有更多的话。
| 归档时间: |
|
| 查看次数: |
2043 次 |
| 最近记录: |