GitHub 考虑到账户安全,从 2021年8月13日(北京时间14日)起不再允许用 GitHub 账户密码对 Repository 进行操作,也就是无法用 GitHub 账号密码或是 SSH 地址携带密码 Clone 访问受限的 Repository。GitHub 官方推荐使用基于 RSA 的 SSH Key 或者账号的 Token Key 替代。
但是因为我有两个账户在使用,为了方便主账号采用 SSH Keys 作为全局账号使用,副账号使用账号密码直接操作,但是 Git 全局配置只能有一个全局账号,所以需要做一些调整。
首先,分别为两个 GitHub 账号生成 SSH 密钥
$ cd ~/.ssh
$ ssh-keygen -t rsa -f id_rsa_1 -C "username1@mail.com"
$ ssh-keygen -t rsa -f id_rsa_2 -C "username2@mail.com"
在~/.ssh/
(Linux) C:\Users\用户名\.ssh\
(Windows)路径下会出现四个文件:
id_rsa_1
id_rsa_1.pub
id_rsa_2
id_rsa_2.pub
然后在 GitHub 上 https://github.com/settings/keys 配置 SSH Keys,将公钥(*.pub
文件)的所有内容填到 GitHub 上。
之后在.ssh
目录下配置config
文件
# 第一个账号
Host github.com
HostName github.com
User username1
IdentityFile ~/.ssh/id_rsa_1
# 第二个账号
Host github.com
HostName github.com
User username2
IdentityFile ~/.ssh/id_rsa_2
最后在项目目录下配置该项目的用户名、邮箱
$ git config user.name 'your_username'
$ git config user.email 'your_email'
或者直接编辑项目目录下的 .git/config
文件
[user]
name = your_username
email = your_email
在 https://github.com/settings/tokens 配置 Token Keys,如果只需要 Repository 的 Git 基本操作,权限列表中只勾选 Repo 即可,确认后会生成 Token Keys。注意 Token 仅此显示一次,以后不再显示,所以要保存好 Token。
在项目的目录下配置该项目的用户名、邮箱以及密码
$ git config user.name 'your_username'
$ git config user.email 'your_email'
$ git config user.password 'your_token'
或者直接编辑 .git/config
文件,增加如下几行
[user]
name = your_username
email = your_email
password = your_token
即可以该账户操作。