一、注册GitHub账户

1.注册GitHub账户

GITHUB官网链接
Email address “电子邮件”

Sign up for GitHub “注册GitHub”

在 Email address 内输入邮箱 点击 Sign up for GitHub注册GitHub.

注册GitHub

点击 Continue”继续” 输入密码与名称.

继续

验证码不加载的话翻个墙​.WattToolkit有github加速

点击 Create account”创建账户”

创建账户

启动代码已发送至你的电子邮件

启动代码

邮箱会获得启动代码 全选数字Ctrl+C复制

回到github注册页面Ctrl+V粘贴.

邮箱

后面选择Continur for free”继续免费”

Free “自由的” 免费.

Team “团队” 每月4美元.

二、在本地配置多个GitHub账户

!注:这里使用的是Windows系统

使用SSH连接到GitHub

1.生成ssh-key

详情请参阅生成ssh密钥

GitHub

2022年3月15日后不再支持DSA密钥.

2021年11月2日之前带有valid_after​的RSA密钥可以继续使用任何签名算法,但在该日期之后生成的RSA密钥必须使用SHA-2签名算法.

1
2
3
4
ssh-keygen -t ed25519 -C "your_email@example.com"
# 注意:如果你使用的是不支持 Ed25519 算法的旧系统,请使用以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
"your_email@example.com" "GitHub账号名称@注册时的邮箱账号"

C:\Users\FangB.ssh

输出

Enter file in which to save the key (C:\Users\FangB/.ssh/id_ed25519): 输入要保存密钥的文件

如果只用单个GitHub账户,可以一直按Enter​回车键接受默认文件位置与默认名称

默认路径:C:\Users\用户名\ssh “系统盘:\用户\用户名.shh”

如果多个的话,需要路径+用户名来区分不同账户.

例如: C:\Users\FangB\.ssh\id_ed25519_bakaxiaofang

如果显示 failed: No such file or directory

在用户目录下创建.ssh文件夹

接着输出

这里的密码填不填都行,具体参阅 使用SSH密钥密码

Enter passphrase (empty for no passphrase):

“输入密码” “(空表示没有密码)”

Enter same passphrase again:

“再次输出相同的密码”

修改密码

1
2
ssh-keygen -p -f C:\Users\FangB\.ssh\id_ed25519_bakaxiaofang
使用绝对路径

2.将 SSH 密钥添加到 ssh-agent

在 Git for Windows 上自动启动 ssh-agent,具体请参阅使用SSH密钥密码

1
2
3
cd C:\Users\用户名\
new-item .profile
在用户下创建.profile文件

创建.profile文件

(可以用记事本或者VSCode打开.profile文件)

复制以下内容并将其粘贴到.profile文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2=agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi

unset env
1
2
3
4
5
6
7
8
9
10
11
手动启动 ssh agent
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
(以管理员运行终端或者sudo插件提权)
确保 ssh-agent 正在运行
Start-Service ssh-agent
添加ssh key并查看已经添加的ssh key
ssh-add C:\Users\FangB\.ssh\id_ed25519_bakaxiaofang
ssh-add C:\Users\FangB\.ssh\id_ed25519_ciyuanxing
ssh-add -l
删除之前添加过的key
ssh-add -D

3.配置ssh config

打开~/.ssh/config文件,若没有则新建一个.

(可以用记事本或者VSCode打开config文件)

1
2
3
cd C:\Users\FangB\.ssh
new-item config
vim config

config内容例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# bakaxiaofang
Host github.com-bakaxiaofang
HostName github.com
User git
IdentityFile C:\Users\FangB\.ssh\id_ed25519_bakaxiaofang

# ciyuanxing
Host github.com-ciyuanxing
HostName github.com
User git
IdentityFile C:\Users\FangB\.ssh\id_ed25519_ciyuanxing
#Host:仓库网站的别名,随意取
#HostName:仓库网站的域名
#User:仓库网站上的用户名
#IdentityFile:私钥的绝对路径

4. git config配置

如果之前登录过一个账户,请清空默认的全局 user.name 和 user.email并重启一次系统,不然会出错.

1
2
3
4
5
6
7
8
9
10
11
替换多个账户清空全局配置
git config --global --list
git config --global --unset user.name
git config --global --unset user.email
单个账户全局配置
git config --global user.name "GitHub用户名"
git config --global user.email "GitHub注册邮箱"
git config --global --list
会有输出 例如
user.name=bakaxiaofang
user.email=fangbushimeizhi@gmail.com

重启一下

GitHub添加SHH密钥并在本地测试SSH连接

点开头像,再打开Settings”设置”页面

点击SSH and GPG keys”SSH 和 GPG 密钥”

再点击New SSH key”新的 SSH 密钥”

SSH 密钥

Title”标题”随便

Key”密钥”

通过cat指令获得

1
2
cat C:\Users\FangB\.ssh\id_ed25519_bakaxiaofang.pub
cat C:\Users\FangB\.ssh\id_ed25519_ciyuanxing.pub

将输出内容全选Ctrl+C复制,回到Add new SSH Key页面Ctrl+V粘贴

Add SHH key​ 添加 SSH 密钥

添加 SSH 密钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
单个账户输入
ssh -T git@github.com
输出
Are you sure you want to continue connecting (yes/no/[fingerprint])?
"您确定要继续连接吗" yes
Hi bakaxiaofang! You've successfully authenticated, but GitHub does not provide shell access.

多个账户根据之前ssh config配置修改后缀.
ssh -T git@github.com-bakaxiaofang
输出
Hi bakaxiaofang! You've successfully authenticated, but GitHub does not provide shell access.

ssh -T git@github.com-ciyuanxing
输出
Hi ciyuanxing! You've successfully authenticated, but GitHub does not provide shell access.

只要输出为Hi GitHub用户名! You’ve successfully authenticated, but GitHub does not provide shell access.就是ssh连接成功.

hexo上传测试效果图

上传测试效果图