- Blog/
如何在 Mac 上为 GitHub 设置SSH Key(2022)
Table of Contents
SSH(Secure Shell)是允许两台电脑之间通过安全连接进行数据交换的网络协议。
在本地电脑生成SSH Key私钥,再将SSH Key公钥添加到GitHub,就实现了本地电脑和GitHub服务器安全连接,可以把本地仓库推送到GitHub远程仓库,或把GitHub远程仓库拉取到本地仓库,即两台电脑间的数据交换。
Noted:GitHub在2022年5月添加了SSH安全性,以往添加SSH Key的教程在有些细节处可能不适用,这是2022年下半年添加SSH Key的教程。
生成SSH Key #
-
点开 GitHub账号头像下的
Settings
-
找到
Settings
下的SSH and GPG keys
,点击generating SSH keys
,点击后会打开一个新的页面。 -
在新的页面中选择
Generating a new SSH key and adding it to the ssh-agent
-
注意选择对应操作系统的教程。
-
往下滑动页面会看到GitHub给出的Mac下生成SSH Key的指南,按照指南的步骤一步一步进行。
-
打开终端(Terminal),复制粘贴以下文本到终端,把
[email protected]
替换成你注册GitHub时使用的邮箱,然后按下Enter键。ssh-keygen -t ed25519 -C "[email protected]"
- 如果你不记得注册GitHub时使用的邮箱,可以从
Settings
中的Emails
中查看。
-
出现
Enter file in which to save the key(...)
,按下Enter
键,一直按Enter
直到出现以下画面。 -
🎉 恭喜你的SSH Key已经生成成功,接下来把生成的SSH Key添加到ssh-agent。
添加SSH Key到ssh-agent #
- 在终端(Terminal)中输入命令:
eval "$(ssh-agent -s)"
- 命令执行后终端会给出Agent pid
-
如果你使用的是 macOS Siera 10.12.2或以上的版本,你需要修改
~/.ssh/config
文件来自动加载密钥到ssh-agent 和储存passphrases到你的钥匙链。- 首先,检查电脑中是否存在
~/.ssh/config
文件
open ~/.ssh/config
- 如果像我一样显示这个config文件不存在,则创建这个文件
touch ~/.ssh/config
- 用编辑器打开
~/.ssh/config
文件
nano ~/.ssh/config
- 在nano窗口中复制粘贴以下代码:
Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
-
粘贴代码后按
control+X
退出编辑器 -
输入
y
保存更改 -
出现这个画面后再按
Enter
键
- 首先,检查电脑中是否存在
-
将 SSH Key 添加到ssh-agent。如果你使用的是 Mac Monterey(12.0)及以上版本,请使用以下命令(
因为在Mac Monterey(12.0)及以上版本中,)。-K
标志已经被废弃,被--apple-use-keychain
代替ssh-add --apple-use-keychain ~/.ssh/id_ed25519
- 如果不是Mac Monterey(12.0)及以上版本,使用以下命令:
ssh-add -K ~/.ssh/id_ed25519
- 🎉 出现
Identity added
即表示添加成功。
添加SSH Key到GitHub #
- 在终端输入以下命令,
pbcopy
会复制SSH Key内容到剪贴板pbcopy < ~/.ssh/id_ed25519.pub
- 再次打开GitHub
Settings
下的SSH and GPG Key
,点击New SSH key
- 添加本机生成的SSH Key到GitHub:
- 在Title中给这个SSH Key命名
- Key Type选择
Authentication Key
- 在Key中
Command+V
粘贴刚刚复制的SSH Key - 添加后点击
Add SSH Key
。
- 🎉 添加完成。
测试SSH Key是否添加成功 #
- 选择一个要用SSH Key clone的仓库,复制这个仓库的SSH链接。
- 在终端输入:
git clone [ssh-url]
- 🎉 clone成功即代表SSH Key添加成功。