配置 SSH 公钥
功能介绍
SSH 的全称为 Secure Shell 即安全外壳协议,是一种加密的网络传输协议。它能够在公开的网络环境中提供安全的数据传输环境,通常用于登录远程主机与推拉代码。
同样一个 SSH 公钥文件,如果添加至某一个代码仓库,则称为部署公钥,配置后默认拥有该项目的只读权限;如果添加至个人账户,称为账户 SSH 公钥,配置后拥有账户下所有项目的读写权限。同一个 SSH 公钥无法既作为部署公钥,又作为账户 SSH 公钥。
若 SSH 公钥未添加至个人账户,但添加为部署公钥时依然提示错误,那么有可能是此公钥已被添加至其他团队中。
生成公钥
本文使用 ssh-keygen
工具生成 SSH 公钥,执行命令:
ssh-keygen -m PEM -t ed25519 -C "your.email@example.com" // 创建新的 SSH 私钥与公钥秘钥对,输入你的邮箱作为标签
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] // 推荐使用默认地址
Enter passphrase (empty for no passphrase): // 此处直接回车即可;若设置密码,则每次使用 SSH 方式推送代码时都会要求输入密码
若你需要使用多个 SSH 密钥对,在
Enter file in which to save the key
步骤时,输入一个新的文件名称就可以避免覆盖已有的密钥对。有关 SSH 更多信息可参考 维基百科。
若您的系统不支持 Ed25519 算法,请使用命令ssh-keygen -m PEM -t rsa -b 4096 -C "your.email@example.com"
。
成功之后显示如下信息:
Your identification has been saved in /Users/you/.ssh/id_ed25519.
# Your public key has been saved in /Users/you/.ssh/id_ed25519.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your.email@example.com
添加公钥
你可以按需添加公钥至单个仓库或个人账户,相同的 SSH 公钥无法重复添加。
关联公钥至单个代码仓库
- 打开上文中生成的秘钥对的地址(通常为
~/.ssh/
)找到后缀为pub
的公钥文件,使用cat
命令输出所有内容并复制。
- 前往代码仓库的「设置」->「部署公钥」页面,点击添加部署公钥,粘贴复制的公钥全文,末尾邮箱将自动填充为公钥名称。
部署公钥默认拥有该项目的只读权限。如果需要获取推送权限,请勾选部署公钥设置里的「授予推送权限」。
- 完成后,在本地运行首次连接时的公钥认证命令:
ssh -T git@e.coding.net
关联公钥至个人账户
- 打开上文中生成的秘钥对的地址(默认地址通常为
~/.ssh/
)找到后缀为pub
的公钥文件,使用cat
命令输出所有内容并复制。
- 登录 CODING,点击右上角个人头像进入「个人账户设置」->「SSH 公钥」页面,然后点击新建公钥按钮。
根据提示粘贴已复制的公钥内容,按需填写公钥名称。
完成后,在本地运行首次连接时的公钥认证命令:
ssh -T git@e.coding.net

在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。