在收到我的新 MacBook 后,我开始在 macOS 上配置开发环境。为了在 macOS 上配置 Git ,我在 MacBook 上生成了新的 SSH 密钥,并将其添加到我的 GitHub 账户中,以启用通过 SSH 进行 Git 操作的身份验证。
1. 生成新的 SSH 密钥
我打开终端,粘贴以下命令来生成新的 SSH 密钥:
bash
ssh-keygen -t ed25519 -C "your_email@example.com"
输出如下:
bash
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/shenlu/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/shenlu/.ssh/id_ed25519
Your public key has been saved in /Users/shenlu/.ssh/id_ed25519.pub
密钥指纹信息:
bash
The key fingerprint is:
SHA256:kWkioRYSeKUUpNBRckvF/JGfJ+wfcu2FrtE6/TYgrr0 your_email@example.com
密钥的 randomart
图像:
bash
+--[ED25519 256]--+
|=+B=*+. . |
|o+oB oo oo |
|..+ o ..=+ . |
| . . o..= . |
| S. o . . |
| o.ooo .|
| .+o=o. |
| ..oo+..|
| ..E+o oo|
+----[SHA256]-----+
说明:
-t
参数指定加密算法为 ed25519
。系统会提示你输入密码(可留空)。请将 "your_email@example.com" 替换为你自己的 GitHub 邮箱。-C
参数是给密钥添加注释,一般使用邮箱作为标识。
ed25519
是一种基于椭圆曲线的公钥签名算法,使用EdDSA
和Curve25519
。
2. 将 SSH 密钥添加到 GitHub 账户
将公钥复制到剪贴板:
bash
pbcopy < ~/.ssh/id_ed25519.pub
这会将
id_ed25519.pub
文件的内容复制到剪贴板。如果pbcopy
无法使用,你可以手动打开隐藏的.ssh
文件夹,使用你喜欢的文本编辑器打开该文件并复制内容。
然后将公钥粘贴到 GitHub 设置中:
- 打开 GitHub 并登录你的账户
- 进入「Settings(设置)」页面
- 点击「SSH and GPG keys」
- 点击「New SSH key」
- 输入该密钥的标题(例如:MacBook)
- 将公钥粘贴到「Key」文本框中
- 点击「Add SSH Key」
- 如果系统提示,输入你的 GitHub 密码确认操作
3. Git 配置
如果你还没有安装 Homebrew,请先安装它。然后安装 Git:
brew install git
使用以下命令设置你的 Git 用户名和邮箱:
arduino
git config --global user.name "Shen Lu"
git config --global user.email "shenlu89dev@gmail.com"
测试 Git 是否可以通过 SSH 正常连接到 GitHub:
css
ssh -T -p 443 git@ssh.github.com
首次连接时你会看到如下提示:
vbnet
The authenticity of host '[ssh.github.com]:443 ([20.205.243.160]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:1: github.com
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[ssh.github.com]:443' (ED25519) to the list of known hosts.
Hi shenlu89! You've successfully authenticated, but GitHub does not provide shell access.
这表明你已成功通过 SSH 认证,尽管 GitHub 不提供 shell 访问权限,但你现在可以通过 SSH 自由地进行 Git 操作。