vscode 连接 GitHub

文章目录

  • [连接 GitHub](#连接 GitHub)
    • [一、通过 SSH 连接 github](#一、通过 SSH 连接 github)
    • [二、通过 HTTPS 连接 github](#二、通过 HTTPS 连接 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 密钥:

    bash 复制代码
    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,输入以下命令:

    bash 复制代码
    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 中,则需要在每次尝试连接时手动输入私钥密码。

    执行命令:

    bash 复制代码
    ssh-add ~/.ssh/id_rsa

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

    bash 复制代码
    Could not open a connection to your authentication agent.

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

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

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

      bash 复制代码
      ssh-agent -h

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

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

      bash 复制代码
      echo $SSH_AGENT_PID

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

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

      bash 复制代码
      eval "$(ssh-agent -s)"
    3. 添加私钥:

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

      bash 复制代码
      ssh-add ~/.ssh/id_rsa

    操作截图:

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

    bash 复制代码
    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 地址为:

    bash 复制代码
    20.205.243.166 

    在电脑的 hosts 文件内添加 :

    bash 复制代码
    20.205.243.166 github.com

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

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

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

    同样添加到 hosts 内:

    bash 复制代码
    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 文件。

      bash 复制代码
      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 文件要添加的全部内容:

bash 复制代码
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缓存。

相关推荐
真·Wild·攻城狮1 小时前
【码农日常】Vscode Clangd初始化失败(Win10)
ide·vscode·编辑器
小堇不是码农1 小时前
在VScode中配置C_C++环境
c语言·c++·vscode
七灵微1 小时前
【测试】【Debug】vscode中同一个测试用例出现重复
ide·vscode·编辑器
小牛itbull3 小时前
ReactPress:重塑内容管理的未来
react.js·github·reactpress
鱼满满记11 小时前
1.6K+ Star!GenAIScript:一个可自动化的GenAI脚本环境
人工智能·ai·github
梦魇梦狸º13 小时前
腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
docker·容器·github
Diamond技术流13 小时前
从0开始学习Linux——远程连接工具
linux·学习·centos·ssh·xshell·ftp
哇咔咔哇咔14 小时前
使用Markdown编写适用于GitHub的README.md文件的目录结构
vscode·markdown
Huazie18 小时前
一篇搞定 Hexo Diversity 主题接入!支持多主题自由切换!
javascript·github·hexo
羊小猪~~20 小时前
神经网络基础--什么是神经网络?? 常用激活函数是什么???
人工智能·vscode·深度学习·神经网络·机器学习