SourceTree 使用 SSH 连接
以下操作我是完全使用 Git Bash 进行操作的~
生成新的 SSH 密钥
生成一个新的 SSH 密钥对。使用 Ed 25519 算法:
ssh-keygen -t ed25519 -C "your_email@example.com"
your_email@example.com
用来作为密钥的标签或注释,这个注释字段的内容不会影响密钥的功能,主要是为了方便识别和管理多个密钥。因此,虽然通常使用电子邮件地址作为注释,但你也可以填写其他任何内容。
运行命令后,系统会提示你输入文件名和路径来保存密钥(默认是 ~/.ssh/id_ed25519
或 ~/.ssh/id_rsa
),你可以按回车键接受默认路径。接着,系统会要求你输入密码保护密钥,你可以选择输入密码或直接回车跳过。(建议全部跳过)
启动 SSH 代理并添加密钥
启动 SSH 代理:
eval "$(ssh-agent -s)"
然后,将新生成的 SSH 私钥添加到 SSH 代理:
ssh-add ~/.ssh/id_ed25519
复制新的 SSH 公钥
cat ~/.ssh/id_ed25519.pub | clip
将新的 SSH 公钥添加到 GitHub
- 登录你的 GitHub 账户。
- 点击右上角的头像,然后选择
Settings
。 - 在左侧菜单中选择
SSH and GPG keys
。 - 点击
New SSH key
按钮。 - 在
Title
字段中输入一个描述性名称,例如My New SSH Key
。 - 在
Key
字段中粘贴新的 SSH 公钥内容。 - 点击
Add SSH key
按钮保存。
测试新的 SSH 连接
ssh -T git@github.com
如果一切顺利,你应该会看到类似以下的消息:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
如何将 ssh-agent 和 ssh-add 命令添加到 Git Bash 配置文件中
打开 Git Bash 配置文件
首先,需要编辑 Git Bash 的配置文件。这通常是 ~/.bashrc
或 ~/.bash_profile
文件。如果这两个文件都存在,建议编辑 ~/.bash_profile
。如果只存在其中一个文件,就编辑现有的那个文件。
你可以使用任何文本编辑器来编辑这些文件。这里以 nano
为例。
在 Git Bash 中运行以下命令:
nano ~/.bash_profile
添加 SSH 代理启动和密钥添加命令
# Start SSH agent
eval "$(ssh-agent -s)" >/dev/null 2>&1
# Add SSH key (if using Ed25519 key)
if [ -f ~/.ssh/id_ed25519 ]; then
ssh-add ~/.ssh/id_ed25519 >/dev/null 2>&1
fi
# Add SSH key (if using RSA key)
if [ -f ~/.ssh/id_rsa ]; then
ssh-add ~/.ssh/id_rsa >/dev/null 2>&1
fi
保存并退出
在 nano
编辑器中,按 Ctrl+O
保存文件,然后按 Ctrl+X
退出编辑器。
重新加载配置文件
在 Git Bash 中运行以下命令以重新加载配置文件,使更改生效:
source ~/.bash_profile
验证配置
关闭并重新打开 Git Bash,运行以下命令以验证 SSH 代理是否已启动并加载了你的 SSH 密钥:
ssh-add -l
如果 SSH 密钥已正确加载,你会看到密钥的指纹和注释。如果没有任何输出或出现错误,请检查上述步骤中添加的内容是否正确,并确保你的 SSH 密钥文件位于 ~/.ssh/
目录中。
通过这些步骤,你应该能够在每次启动 Git Bash 时自动启动 SSH 代理并加载您的 SSH 密钥。
SourceTree 设置
- 打开 SourceTree
- 打开选项
- 找到 SSH 客户端配置
- SSH 密钥选择
~/.ssh/id_ed25519
下的id_ed25519
- SSH 客户端选择 OpenSSH