配置 SSH 公钥
功能介绍
SSH 的全称为 Secure Shell 即安全外壳协议,是一种加密的网络传输协议。它能够在公开的网络环境中提供安全的数据传输环境,通常用于登录远程主机与推拉代码。
同样一个 SSH 公钥文件,如果添加至某一个代码仓库,则称为部署公钥,配置后默认拥有该项目的只读权限,支持新增读写权限;如果添加至团队设置中心,则称为团队部署公钥,仅拥有只读权限;如果添加至个人账户,称为账户 SSH 公钥,配置后拥有账户内所有代码仓库的读写权限。同一个 SSH 公钥无法既作为部署公钥,又作为个人账户 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 方式推送代码时都会要求输入密码
Enter same passphrase again: // 同前,此处直接回车即可
若你需要使用多个 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 公钥作为团队部署公钥后,可以将相对应的私钥分享给团队成员。无需开源代码仓库、无需担心个人私钥泄露,仅需通过私钥便能够拉取代码仓库。
在持续交付的场景下,提供私钥便能够让相应的构建机或主机组检出代码。无需繁杂的二次关联与验证,让构建过程更加便捷。
团队所有者 / 管理员点击首页导航左下角的设置按钮,前往「团队设置中心」->「功能设置」-「代码仓库」->「团队设置公钥」中录入 SSH 公钥。
录入后添加至相应的目标仓库。
添加完成后,通过私钥便能够使用 SSH 协议拉取代码仓库。
添加至个人账户 SSH 公钥
- 打开上文中生成的密钥对的地址(默认地址通常为
~/.ssh/
)找到后缀为pub
的公钥文件,使用cat
命令输出所有内容并复制。
- 登录 CODING,点击左下角个人头像进入「个人账户设置」->「SSH 公钥」页面,然后点击新建公钥按钮。
根据提示粘贴已复制的公钥内容,按需填写公钥名称。
完成后,在本地运行首次连接时的公钥认证命令:
ssh -T git@e.coding.net
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。