下面是一个自动化的Shell脚本示例,适用于Linux和macOS系统(Windows Git Bash也可以用,但复制公钥到剪贴板部分可能需要根据环境调整)。此脚本会:
- 生成SSH密钥(默认ed25519)
- 启动SSH代理并添加私钥
- 自动将公钥复制到剪贴板(根据系统自动判断)
- 提示你手动去GitHub添加公钥
- 测试SSH连接
请先把脚本中的 `your_email@example.com` 替换成你的邮箱,然后保存为 `setup_ssh_github.sh`,在终端执行:
```bash
bash setup_ssh_github.sh
```
---
````bash
#!/bin/bash
# 请替换为你的邮箱
EMAIL="your_email@example.com"
echo "1. 生成SSH密钥..."
ssh-keygen -t ed25519 -C "$EMAIL" -f ~/.ssh/id_ed25519 -N ""
echo "2. 启动ssh-agent..."
eval "$(ssh-agent -s)"
echo "3. 添加私钥到ssh-agent..."
ssh-add ~/.ssh/id_ed25519
echo "4. 复制公钥到剪贴板..."
PUB_KEY_FILE=~/.ssh/id_ed25519.pub
if command -v pbcopy &> /dev/null
then
pbcopy < "$PUB_KEY_FILE"
echo "公钥已复制到剪贴板 (macOS pbcopy)"
elif command -v xclip &> /dev/null
then
xclip -selection clipboard < "$PUB_KEY_FILE"
echo "公钥已复制到剪贴板 (Linux xclip)"
elif command -v clip.exe &> /dev/null
then
cat "$PUB_KEY_FILE" | clip.exe
echo "公钥已复制到剪贴板 (Windows clip.exe)"
else
echo "无法自动复制公钥,请手动打开文件并复制: $PUB_KEY_FILE"
fi
echo ""
echo "请登录GitHub,进入 Settings -> SSH and GPG keys -> New SSH key,粘贴公钥并保存。"
read -p "按回车继续测试SSH连接..."
echo "5. 测试SSH连接..."
ssh -T git@github.com
echo "脚本执行完毕!"
````
---
### 注意事项
- 脚本中生成的密钥文件会覆盖 `~/.ssh/id_ed25519`,如果已有密钥请先备份。
- Windows用户如果用Git Bash,确保 `clip.exe` 命令可用。
- 复制公钥失败时,脚本会提示你手动复制。
如果需要我帮你写Windows批处理脚本或者PowerShell版本,也可以告诉我!