GitHub使用非对称SSH吗?

GitHub使用非对称SSH吗?,git,github,Git,Github,我正在学习如何使用GitHub。另外,我正在尝试使用SSH方式与GitHub交互,我想知道GitHub使用哪种SSH加密。如果是非对称加密,那么我们为什么不使用公钥进行交换,也就是说,我们将生成的公钥提交给GitHub,但我们没有获得GitHub的公钥。Git和GitHub使用的加密与SSH通常使用的加密相同。通常,您确实需要在提示时通过验证指纹来验证远程服务器(在本例中为GitHub)的SSH主机密钥 所使用的特定算法因协商内容而异,但会有某种密钥交换(通常为Diffie-Hellman或椭圆

我正在学习如何使用GitHub。另外,我正在尝试使用SSH方式与GitHub交互,我想知道GitHub使用哪种SSH加密。如果是非对称加密,那么我们为什么不使用公钥进行交换,也就是说,我们将生成的公钥提交给GitHub,但我们没有获得GitHub的公钥。

Git和GitHub使用的加密与SSH通常使用的加密相同。通常,您确实需要在提示时通过验证指纹来验证远程服务器(在本例中为GitHub)的SSH主机密钥


所使用的特定算法因协商内容而异,但会有某种密钥交换(通常为Diffie-Hellman或椭圆曲线Diffie-Hellman)、每一方的公钥签名算法(RSA、DSA、ECDSA或Ed25519)以及普通对称密码和MAC(通常为AES-CTR和HMAC以及SHA-2)或者AEAD(AES-GCM或ChaCha20-Poly1305)。

您可以通过SSH连接获得GitHub的公钥,它会自动交换,并作为SSH会话协商的pert用于主机验证

例如:

ssh-keyscan github.com
这将返回如下内容:

# github.com:22 SSH-2.0-babeld-2e9d163d
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7...GXA8VJiS5ap43JXiUFFAaQ==
# github.com:22 SSH-2.0-babeld-2e9d163d
# github.com:22 SSH-2.0-babeld-2e9d163d
所有这些都放在显示rsa公钥的
ssh rsa
块中。该信息通常存储在
~/.ssh/known_hosts
或同等文件中

请记住,RSA加密实际上非常慢,它依赖于使用大量数字(通常为2048位或更长)的数学运算,并且仅用于引导速度更快的备用对称加密方法。它主要用于身份验证和会话密钥交换。这些对称加密协议针对速度进行了优化,但取决于是否有一种安全的密钥交换方法,这是像RSA这样的非对称协议所提供的

要了解这一切是如何结合在一起的,首先要了解的是or