Bootstrap

You‘ve successfully authenticated, but GitHub does not provide shell access.问题解决

问题与原因

https://github.com/settings/keys已经配置了本地的git 通过git-keygen -t rsa命令生成的秘钥已经配置,而使用 ssh [email protected]命令得到如下的反馈

$ ssh -T [email protected]
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

这时候只看到successfully以为已经配好了密钥,以后项目都可以连接github了,但其实后面 does not provide shell access告知了不可以使用shell访问。
然后使用项目在git push 的时候将还是会提示输入账号密码。并且现在 git 也不允许 http 连接,所以提供账号密码也没办法 push。

$ git push -u origin main
Username for 'https://github.com': [email protected]
Password for 'https://[email protected]@github.com': 
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/xxx/xxx.git/'

这一段的意思你原先的密码凭证从2021年8月13日开始就不能用了,必须使用个人访问令牌(personal access token),就是把你的密码替换成token

解决方案

  1. 第一种是根据提示的来使用token的解决方案:作者在这篇文章有提供解决github配置ssh密钥后仍然需要登录
  2. 第二种可以通过以下命令添加远程仓库
git remote set-url origin [email protected]:用户名/仓库名.git

注意这里并非普通的http格式添加远程仓库
然后查看远程仓库可以发现已经改变了格式:

git remote -v                                                     
origin	[email protected]:xxx/xxx.git (fetch)
origin	[email protected]:xxx/xxx.git (push)

;