最近在更新openwrt软件包的时候忘记了Git是咋用的了,特此记录一下。
原文链接:https://zhuanlan.zhihu.com/p/628727065

当前,通过Git在本地仓库和远程仓库(如Github)之间进行操作,已不再支持密码验证,而是转为通过更安全的SSH密钥验证方式。
因此,本文将介绍如何生成SSH密钥以及将其添加到Github中,此外也会介绍配置过程中常见问题的解决方法。

生成SSH密钥

没啥好说的,直接:

ssh-keygen

就可以了。

添加密钥到Github账户

生成SSH密钥后,复制公钥内容到自己的Github账户中。具体地,点击Github右上角账户图标→Settings→SSH and GPG keys→New SSH key,在Key一栏粘贴公钥内容,在Title一栏设定这个SSH密钥的标识:
v2-1a2430dc5fa0d1869328fd068e1e404c_r.jpg
v2-c1bf8b83515616ba81f5c09bbc3e1729_r.jpg

验证

执行完上述两步操作后,正常情况下已经配置成功了,此时可以验证一下:

ssh -T git@github.com
# 如果输出以下内容,则表示配置成功,此时即可直接进行任何git操作。
# Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

Git使用方法

添加文件更新信息:

git add .

添加评论:

git commit -m 'update'

push到github:

git push

相关问题解决

Support for password authentication was removed ...

在配置好SSH后,进行git操作时,仍要求输密码,即使输入了正确的账户和密码,还是报错:

# 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/'

出错的原因在于:本地仓库在clone时使用的是HTTPS URL,故该仓库此时的remote协议会是HTTPS协议,然而SSH密钥连接只支持SSH URL,不支持HTTPS URL,故会要求输账户密码。
因此,需要将remote协议从HTTPS协议修改为GIT协议。在本地仓库路径下输入以下命令:

git remote set-url origin git@github.com:xxx/xxx.git

此时,再进行git的pull/push操作就不再需要输密码了,直接可以通过SSH密钥认证。