更新ssh密钥

2023年09月15日星期五晴北京市北京师范大学, 今天我的gitlab上配置的ssh密钥已经过期,所以需要重新配置一个新的密钥。于是重新一下ssh密钥

生成密钥

修改密钥存放目录.ssh权限

在生成密钥的存放时要注意,我今天多次测试不能保存,原来是.ssh目录所属权给了root而不是feng,于是修改了一下权限,即

修改.ssh的拥有者和组
1
2
sudo chmod feng ~/.ssh 
sudo chgrp feng ~/.ssh

生成密钥

生成ed25519密钥
1
ssh-keygen -t ed25519 -C "your_email@example.com"

SHA-1算法收费,所以禁用ssh-rsa签名算法,于是决定使用ssh-ed25519签名算法。这在我之前的文章中介绍过。由于密钥存在一个使用期限的问题,所以采用算法+日期的命名格式,即 id_ed25519_20230915作为今天生成的密钥名称。

修改配置密钥文件

~/.ssh/config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

Host github_fengzhenhua-vip
User git
HostName github.com
preferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_1
Host github_pyyz
User git
HostName github.com
preferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_2
Host github_bnu-fzh
User git
HostName github.com
preferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_3
Host gitee_fengzhenhua
User git
HostName gitee.com
preferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_1
Host gitee_pyyz
User git
HostName gitee.com
preferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519_2
Host gitlab_fengzhenhua
User git
HostName gitlab.com
preferredAuthentications publickey
# IdentityFile ~/.ssh/id_ed25519_1 已经过期,重新生成新的密钥
IdentityFile ~/.ssh/id_ed25519_20230915

部署到gitlab

  • 登录Gitlab

  • 点击头像,然后是preferences选项

  • 点击左侧SSH Keys

  • 点击右侧Add new key

  • 复制公钥

    复制下述公钥
    1
    cat ~/.ssh/id_ed25519_20230915.pub

  • 将公钥粘贴到key对话框中,然后点击下面的Add key ,完成部署。