您的位置:

如何通过设置验证方法解决vscode无法连接GitHub?

一、使用SSH key认证连接GitHub

在使用VSCode连接GitHub时,可能会遇到需要输入用户名和密码的情况。然而,由于GitHub启用了两步验证等安全措施,输入用户名和密码登录GitHub后,仍然无法连接成功。这时候,我们可以使用SSH key认证方式连接GitHub。以下是具体步骤:

1、首先,在终端中输入以下命令,生成SSH key:

ssh-keygen -t rsa -b 4096 -C "youremail@example.com"

其中,youremail@example.com为你在GitHub上的邮箱地址,在GitHub仓库的设置中可以看到。

2、生成成功后,进入.ssh目录(Windows系统属于当前用户目录下的.ssh目录)下,可以看到两个文件:id_rsa和id_rsa.pub。后者就是我们需要填入GitHub的公钥。

3、在GitHub个人设置中添加公钥:

  • 进入GitHub仓库,点击右上角头像,选择Settings/SSH and GPG keys,进入页面
  • 点击New SSH Key,填写Title(随意),将id_rsa.pub文件中的内容复制到Key文本框中
  • 点击Add SSH Key,保存公钥

4、配置VSCode连接GitHub:

  • 打开VSCode,按下Ctrl+Shift+P,调出命令面板
  • 输入“ssh open in remote”,选择“Remote-SSH: Open Configuration file…”,编辑配置文件
  • 在文件中添加以下内容,保存并退出:
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

5、重新打开VSCode,连接GitHub即可。

二、在GitHub上生成个人访问令牌

如果你使用SSH key认证方式连接GitHub仍然失败,还可以尝试使用个人访问令牌(Personal Access Token)进行连接,步骤如下:

1、在GitHub个人设置中生成个人访问令牌:

  • 进入GitHub仓库,点击右上角头像,选择Settings/Developer settings/Personal access tokens,进入页面
  • 点击Generate new token,填写Token description(随意),勾选repo权限,点击Generate token
  • 注意:生成的Token只会显示一次,请复制保存

2、配置VSCode连接GitHub:

  • 打开VSCode,按下Ctrl+Shift+P,调出命令面板
  • 输入“Remote-SSH: Open Configuration file…”,编辑配置文件
  • 在文件中添加以下内容,替换 为上一步中复制的Token,保存并退出:
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa
    IdentityFile ~/.ssh/id_rsa
    AddKeysToAgent yes
    IdentitiesOnly yes
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes
    IdentityFile ~/.ssh/id_rsa 2
    IdentitiesOnly yes
    IdentityFile ~/.ssh/id_rsa 3
    IdentityFile ~/.ssh/id_rsa 4
    LogLevel verbose
    ServerAliveInterval 120
    ServerAliveCountMax 20
proxyCommand ssh -q -W %h:%p mybastion
UserAgent VSCodeSSHd
    IdentityFile ~/.ssh/id_rsa 
   

   

3、重新打开VSCode,连接GitHub即可。

三、检查网络连接是否正常

如果前两种方法都无法解决问题,我们也需要检查一下网络连接是否正常,步骤如下:

1、检查网络是否连接:

  • 打开VSCode,按下Ctrl+Shift+P,调出命令面板
  • 输入“Preferences: Open User Settings”,打开用户设置
  • 搜索“http.proxy”,如果有值,则需要检查代理设置是否正确

2、检查防火墙设置:

  • 如果使用Windows系统,需要检查Windows Defender防火墙是否开启
  • 如果使用Mac系统,需要检查系统防火墙是否开启

3、使用命令行测试网络连接:

在终端中输入以下命令:

ping github.com

如果能够正常接收响应,则说明网络连接正常。