问题与原因
在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
!
解决方案
- 第一种是根据提示的来使用token的解决方案:作者在这篇文章有提供解决github配置ssh密钥后仍然需要登录
- 第二种可以通过以下命令添加远程仓库
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)