生成 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 就可以