文章目录
- 连接 GitHub
- 一、通过 SSH 连接 github
- 二、通过 HTTPS 连接 github
连接 GitHub
在 vscode 中首次使用 git push
命令时会要求输入 github 账户的 username 和 password,这种基本身份验证在 2021.8.13 以前还是可以的,之后的话,就会报如下错误:
一、通过 SSH 连接 github
参考内容:
使用 SSH 密钥对 git push 进行身份验证
vscode如何连接github/gitee远程仓库详细步骤(ssh+https)最全最详细
-
生成 SSH 密钥
如果您已经有 SSH 密钥对,可以跳过这一步。否则,您可以在终端中输入以下命令来生成新的 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
把
your_email@example.com
换成 github 绑定的邮箱,在提示符下,按照默认设置一路回车即可。这将在 ~/.ssh 目录下生成
id_rsa
和id_rsa.pub
两个文件,其中id_rsa
是私钥,id_rsa.pub
是公钥。提示中显示 SSH 密钥对存放的路径。一般默认位置
C:\Users\lenovo\.ssh
. -
添加公钥到 Git 账户
将
id_rsa.pub
的公钥文件的所有内容复制,进入 github 设置里找到配置 ssh 的选项,如下图,其中,title 可以任意写,将复制的公钥文件粘贴进Key
中,点击 Add SSH Key 就配置成功了。
之后,若用其他多个电脑连接 github 提交版本记录,只需要再在电脑上生成 SSH 密钥添加进 github 即可。 -
在本地 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......
。 -
添加私钥到 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 中正确地配置。需要进行以下操作:-
确保已经安装了
ssh-agent
。可以在终端中输入以下命令检查:
ssh-agent -h
如果系统已经安装了
ssh-agent
,它会输出ssh-agent
的帮助信息。否则,可以使用系统包管理器来安装它。 -
ssh-agent
已经启动,请使用以下命令检查它的进程 ID:echo $SSH_AGENT_PID
如果没有输出任何内容,说明
ssh-agent
没有在当前 shell 中正确地配置。可以使用以下命令启动
ssh-agent
,并将其添加到当前 shell中:eval "$(ssh-agent -s)"
-
添加私钥:
一旦
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
以上步骤应该能够解决这个问题。
-
-
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记录直接进行跳转。
-
找到hosts 文件的存在位置:
一般存在于
C:\Windows\System32\drivers\etc
中。把 hosts 文件复制一份到其他文件夹中打开,修改完成后再复制替换原来的 hosts 文件,否则会因为管理员权限问题无法保存。
-
无法访问github:
首先我们需要知道 GitHub 的IP地址,直接使用 https://tool.lu/ip/ 查询到
github.com
的当前 ip 地址。如当前的 ip 地址为:
20.205.243.166
在电脑的 hosts 文件内添加 :
20.205.243.166 github.com
注意:这个 ip 地址有可能发生变化,所以访问不了的时候,再去查一次 ip 重新添加一下。
-
无法使用 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
-
设置同步登录认证出现 network error 错误:
- 在 vscode 中,
ctrl+shift+P
,输入log
,选择开发人员:打开扩展日志文件夹
. - 进入认证文件夹,打开日志文件 vscode.github-authentication,查找连接错误 ip 为
api.github.com
. - 在 https://www.ipaddress.com/ 查询到
api.github.com
对应到的 ip,更改 hosts 文件。140.82.112.6 api.github.com
- 在 vscode 中,
-
hosts 文件修改完成后,刷新本地DNS缓存,这一步必须要有
打开命令提示符(win+R,输入cmd)——输入
ipconfig/flushdns
——查看现在 github 的IPping github.com
,若能 ping 通则配置成功,其他 ip 也可以ping一下。 -
全部操作完成之后,回到 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缓存。