常见SSH加密算法
算法类型 | 公钥 | 私钥 | 备注 |
ED25519 | id_ed25519.pub | id_ed25519 | 推荐,安全且快速,openSSH6.5中引入 |
RSA | id_rsa.pub | id_rsa | 常见,广泛兼容性好 |
PS:DSA、EdDSA 已不再使用或者不推荐使用;
查询已存在的SSH密钥
cat ~/.ssh/id_xxxx.pub
生成SSH密钥
ssh-keygen -t <密钥类型> -C "<注释内容>"
点击回车,填写SSH密钥生成路径
(以 ED25519 算法为例)
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/user/.ssh/id_ed25519):
密钥默认生成路径:/home/user/.ssh/id_ed25519
;
公钥与之对应为:/home/user/.ssh/id_ed25519.pub
;
设置一个密钥口令
Enter passphrase (empty for no passphrase): Enter same passphrase again:
口令默认为空,你可以选择使用口令保护私钥文件。如果你不想在每次使用 SSH 协议访问仓库时,都要输入用于保护私钥文件的口令,可以在创建密钥时,输入空口令。
点击回车,完成密钥对创建
密钥用于鉴权,请谨慎保管。公钥文件以 .pub 扩展名结尾,可以公开给其他人,而没有 .pub 扩展名的私钥文件不要泄露给任何人!
https://help.aliyun.com/document_detail/153709.html?spm=a2c4g.153799.0.i2
拷贝公钥
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
Git 配置多密钥
查看全局user.name
和 user.email
git config user.name git config user.email
清空默认的全局 user.name
和 user.email
git config --global --unset user.name git config --global --unset user.email
在config 文件配置多个 ssh-key
编辑~/.ssh/config
# 账号A Host codeup_1 HostName codeup.aliyun.com IdentityFile ~/.ssh/id_xxx_1 PreferredAuthentications publickey IdentityAgent none IdentitiesOnly yes # 账号B Host codeup_2 HostName codeup.aliyun.com IdentityFile ~/.ssh/id_xxx_2 PreferredAuthentications publickey IdentityAgent none IdentitiesOnly yes
HostName:填写托管平台服务地址;
Host:填写别名,方便命令行使用;
IdentityFile:填写证书位置;
使用别名进行区分使用不同的密钥
# 访问 Codeup,将使用 ~/.ssh/id_ed25519.pub 密钥 git clone git@codeup.aliyun.com:example/repo.com # 以 codeup_1 别名访问 Codeup 时,将使用 ~/.ssh/id_xxx_1 密钥 git clone git@codeup_1:example/repo.com # 以 codeup_2 别名访问 Codeup 时,将使用 ~/.ssh/id_xxx_2 密钥 git clone git@codeup_2:example/repo.com
参考
https://help.aliyun.com/document_detail/153709.html?spm=a2c4g.153799.0.i2
https://help.aliyun.com/document_detail/322237.html?spm=a2c4g.153709.0.0.4a604b3eoear3e
注意:本文归作者所有,未经作者允许,不得转载