生成 GIT SSH 密钥对

在生成新的 SSH 密钥前,请先确认是否需要使用本地已生成的SSH密钥,SSH 密钥对一般存放在本地用户的根目录下。

基于ED25519算法,生成密钥对命令如下:

ssh-keygen -t ed25519 -C "<注释内容>"

基于RSA算法,生成密钥对命令如下:

ssh-keygen -t rsa -C "<注释内容>"

单击回车,选择 SSH 密钥生成路径

以 ED25519 算法为例,默认路径如下:

密钥默认生成路径:

/home/user/.ssh/id_ed25519

公钥与之对应为:

/home/user/.ssh/id_ed25519.pub

以 RSA 算法为例,默认路径如下:

密钥默认生成路径:

/home/user/.ssh/id_rsa

公钥与之对应为:

/home/user/.ssh/id_rsa.pub

设置一个密钥口令。

Enter passphrase (empty for no passphrase): <密钥口令>
Enter same passphrase again: <密钥口>

口令默认为空,您可以选择使用口令保护私钥文件。如果您不想在每次使用 SSH 协议访问仓库时,都要输入用于保护私钥文件的口令,可以在创建密钥时,输入空口令。

点击回车,完成密钥对创建。

拷贝公钥

Windows:cat ~/.ssh/id_ed25519.pub | clip
Mac: tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy
GNU/Linux (requires xclip): xclip -sel clip < ~/.ssh/id_ed25519.pub

一个 SSH 密钥可以给多个 Git 供应商使用

编辑 ~/.ssh/config 文件:

vim ~/.ssh/config

添加以下配置:(User 可以通过 whoami sehll查询)

Host codeup.aliyun.com gitcode.net
    User root
    IdentityFile ~/.ssh/id_ed25519_main(或者:id_rsa)
    IdentitiesOnly yes

如果在 docker 里面没有 vim 使用

cat > ~/.ssh/config << 'EOF' 
Host codeup.aliyun.com gitcode.net
User root
IdentityFile ~/.ssh/id_ed25519_main(或者:id_rsa)
IdentitiesOnly yes
EOF

测试

ssh -T git@gitcode.net 
ssh -T git@codeup.aliyun.com
如果出现:Welcome to xxx 就可以