📌  相关文章
📜  为什么github问我用户名密码而不是SSH认证? - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:48:55.858000             🧑  作者: Mango

为什么Github问我用户名密码而不是SSH认证?

在使用Github时,我们通常会遇到需要输入用户名密码的情况,这是因为默认的协议是HTTP,而不是SSH。

什么是SSH认证?

SSH是一种安全协议,可以加密网络连接,防止数据被窃取或篡改。使用SSH协议可以免密码登录,只需要先在本地生成公私钥对,将公钥上传到Github,即可使用私钥进行认证登录。

为什么Github使用HTTP协议?

Github使用HTTP协议更加适合大多数用户,因为它不需要进行配置和认证,只需要输入用户名和密码即可使用。相比之下,使用SSH协议需要先进行一系列的配置和认证,适用于更高级的用户。

如何配置SSH认证?

如果您想使用SSH协议进行认证登录,需要先在本地生成公私钥对。具体步骤如下:

  1. 打开终端,输入以下命令生成公私钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. 接下来,需要将公钥上传到Github。打开Github,进入个人设置 -> SSH and GPG keys -> New SSH key,将公钥复制到Key中,保存即可。

  2. 在进行git clone和push操作时,需要将仓库地址改为SSH协议的地址,例如:

git clone git@github.com:username/repo.git
  1. 在第一次使用SSH协议登录时,会提示是否添加到已知主机列表中,输入yes即可。之后就可以免密码登录了。
总结

Github默认的HTTP协议更加适合大多数用户,而SSH协议需要先进行一系列的配置和认证,适用于更高级的用户。如果您想使用SSH协议进行认证登录,需要先在本地生成公私钥对,将公钥上传到Github,使用私钥进行认证登录。