vscode 连接 GitHub

连接 GitHub

在 vscode 中首次使用 git push 命令时会要求输入 github 账户的 username 和 password,这种基本身份验证在 2021.8.13 以前还是可以的,之后的话,就会报如下错误:

在这里插入图片描述

一、通过 SSH 连接 github

参考内容:
使用 SSH 密钥对 git push 进行身份验证
vscode如何连接github/gitee远程仓库详细步骤(ssh+https)最全最详细

  1. 生成 SSH 密钥

    如果您已经有 SSH 密钥对,可以跳过这一步。否则,您可以在终端中输入以下命令来生成新的 SSH 密钥:

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

    your_email@example.com 换成 github 绑定的邮箱,在提示符下,按照默认设置一路回车即可。

    这将在 ~/.ssh 目录下生成 id_rsaid_rsa.pub 两个文件,其中 id_rsa 是私钥,id_rsa.pub 是公钥。

    提示中显示 SSH 密钥对存放的路径。一般默认位置 C:\Users\lenovo\.ssh.

  2. 添加公钥到 Git 账户

    id_rsa.pub 的公钥文件的所有内容复制,进入 github 设置里找到配置 ssh 的选项,如下图,其中,title 可以任意写,将复制的公钥文件粘贴进 Key 中,点击 Add SSH Key 就配置成功了。
    在这里插入图片描述
    之后,若用其他多个电脑连接 github 提交版本记录,只需要再在电脑上生成 SSH 密钥添加进 github 即可。

  3. 在本地 Git 仓库中配置 SSH 协议

    如果之前连接远程仓库时使用的是 HTTPS,需要将 url 更换为 SSH,输入以下命令:

    git remote set-url origin <url>
    

    将 url 替换为 git 仓库的 SSH URL,这将把 git 仓库的 URL 从 HTTPS 协议改为 SSH 协议。

    或者直接再次执行 git remote add origin git@github.com......

  4. 添加私钥到 ssh-agent
    如果频繁的要在多个github账号之间切换,还是别配置私钥到 ssh-agent 中了,否则更换账号推送时还是使用的原来的账号,还需要把私钥删除,比较麻烦。
    如果已经把私钥添加进去了,想要切换账号的话,1.更改git config --global user.name ”your name" 'git config --global user.email "your email" .2.凭据管理器中删除GitHub地址的凭据。3.

    将 SSH 私钥(默认为 ~/.ssh/id_rsa)添加到 ssh-agent 中,以便在进行 SSH 连接时无需每次都输入私钥密码。

    当您尝试连接到需要身份验证的远程服务器时,ssh-agent 会自动使用保存在其中的私钥进行身份验证。如果您没有使用 ssh-add 命令将私钥添加到 ssh-agent 中,则需要在每次尝试连接时手动输入私钥密码。

    执行命令:

    ssh-add ~/.ssh/id_rsa
    

    如果在执行 命令 ssh-add ~/.ssh/id_rsa,shell 报错

    Could not open a connection to your authentication agent.
    

    这个错误提示通常表示 ssh-agent 没有启动或者没有在当前 shell 中正确地配置。需要进行以下操作:

    1. 确保已经安装了 ssh-agent

      可以在终端中输入以下命令检查:

      ssh-agent -h
      

      如果系统已经安装了 ssh-agent,它会输出 ssh-agent 的帮助信息。否则,可以使用系统包管理器来安装它。

    2. ssh-agent已经启动,请使用以下命令检查它的进程 ID:

      echo $SSH_AGENT_PID
      

      如果没有输出任何内容,说明 ssh-agent 没有在当前 shell 中正确地配置。

      可以使用以下命令启动 ssh-agent,并将其添加到当前 shell中:

      eval "$(ssh-agent -s)"
      
    3. 添加私钥:

      一旦 ssh-agent 已经启动并添加到了当前 shell 中,请使用以下命令添加私钥到 ssh-agent 中:

      ssh-add ~/.ssh/id_rsa
      

    操作截图:
    在这里插入图片描述

    如果还是出现 “Could not open a connection to your authentication agent.” 错误,请尝试重启 ssh-agent

    ssh-agent -k
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa
    

    以上步骤应该能够解决这个问题。

  5. git push

    然后就可以 Git push 了,根据提示仔细应对就行。

二、通过 HTTPS 连接 github

参考内容:
github无法访问?vscode 无法使用github登录同步? 改 hosts 吧
修改Hosts文件解决网站访问问题
vscode github设置同步登录忍者network error错误处理
vscode 已登录账号情况下切换另一种方式登录(从微软到Github)

在 vscode 连接 github 时要求输入 username 和 password,也 无法使用 github 的帐号登录并同步 vscode,可以通过修改 hosts 文件来解决网站无法访问的问题,使用本地DNS记录直接进行跳转。

  1. 找到hosts 文件的存在位置:

    一般存在于 C:\Windows\System32\drivers\etc 中。

    把 hosts 文件复制一份到其他文件夹中打开,修改完成后再复制替换原来的 hosts 文件,否则会因为管理员权限问题无法保存。

  2. 无法访问github:

    首先我们需要知道 GitHub 的IP地址,直接使用 https://tool.lu/ip/ 查询到 github.com 的当前 ip 地址。

    如当前的 ip 地址为:

    20.205.243.166 
    

    在电脑的 hosts 文件内添加 :

    20.205.243.166 github.com
    

    注意:这个 ip 地址有可能发生变化,所以访问不了的时候,再去查一次 ip 重新添加一下。

  3. 无法使用 github 的帐号登录并同步 vscode :

    一样,先要去 https://www.ipaddress.com/ 查询到 vscode-auth.github.com 对应到的 ip ,我查询到了下面这些:

    同样添加到 hosts 内:

    185.199.108.153  vscode-auth.github.com
    185.199.109.153  vscode-auth.github.com
    185.199.110.153  vscode-auth.github.com
    185.199.111.153  vscode-auth.github.com
    2606:50c0:8000::153  vscode-auth.github.com
    2606:50c0:8001::153  vscode-auth.github.com
    2606:50c0:8002::153  vscode-auth.github.com
    2606:50c0:8003::153  vscode-auth.github.com
    
  4. 设置同步登录认证出现 network error 错误:

    1. 在 vscode 中,ctrl+shift+P,输入 log ,选择开发人员:打开扩展日志文件夹.
    2. 进入认证文件夹,打开日志文件 vscode.github-authentication,查找连接错误 ip 为 api.github.com.
    3. https://www.ipaddress.com/ 查询到 api.github.com 对应到的 ip,更改 hosts 文件。
      140.82.112.6  api.github.com
      
  5. hosts 文件修改完成后,刷新本地DNS缓存,这一步必须要有

    打开命令提示符(win+R,输入cmd)——输入 ipconfig/flushdns——查看现在 github 的IP ping github.com,若能 ping 通则配置成功,其他 ip 也可以ping一下。

  6. 全部操作完成之后,回到 vscode 使用 github 账号登录去同步配置就可以成功了,使用 HTTPS 连接 github 去 push 也成功了。

vscode已登陆微软账号(或GitHub账号)下需要切换到GitHub账号(或微软账号),注销后再次登录依然是原来的登录方式?

ctrl+shift+p 输入 sync 打开命令面板,选择 Setting:Sync Turn Off 停止同步,弹窗显示确认关闭。点击"用户"图标,重新选择登录账号即可。

总结:
hosts 文件要添加的全部内容:

20.205.243.166 github.com

185.199.108.153  vscode-auth.github.com
185.199.109.153  vscode-auth.github.com
185.199.110.153  vscode-auth.github.com
185.199.111.153  vscode-auth.github.com
2606:50c0:8000::153  vscode-auth.github.com
2606:50c0:8001::153  vscode-auth.github.com	
2606:50c0:8002::153  vscode-auth.github.com
2606:50c0:8003::153  vscode-auth.github.com

140.82.112.6  api.github.com

终端输入 ipconfig/flushdns,刷新本地DNS缓存。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-14 11:30:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-14 11:30:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-14 11:30:04       82 阅读
  4. Python语言-面向对象

    2024-06-14 11:30:04       91 阅读

热门阅读

  1. vsto excel 快速查找所有标黄的格子

    2024-06-14 11:30:04       33 阅读
  2. C++面向对象程序设计之类与对象(1)

    2024-06-14 11:30:04       34 阅读
  3. SQL 入门教程

    2024-06-14 11:30:04       33 阅读
  4. Go基础编程 - 07 - 字典(map)及其约束

    2024-06-14 11:30:04       34 阅读
  5. unity2d Ugui--Image城市道路汽车行驶

    2024-06-14 11:30:04       29 阅读
  6. vscode 调试

    2024-06-14 11:30:04       36 阅读
  7. 数据库中的数据分类

    2024-06-14 11:30:04       29 阅读