Github SSH 免密设置
2026-05-04
1. 本地生成 SSH 密钥
- Windows:装 Git 后用 Git Bash
- Mac/Linux:直接用终端
进入Git目录的bin执行(替换成你 GitHub 注册邮箱):
ssh-keygen -t ed25519 -C "your_email@example.com"
#其中ed25519类似RSA,是目前 GitHub 推荐的一种密钥类型- 保存位置:直接回车(默认~/.ssh/id_ed25519)
- 密码(passphrase):直接回车留空(纯免密)
2. 复制公钥,加到 GitHub
进入刚才生成的那个目录下,查看公钥:
# Mac/Linux
cat ~/.ssh/id_ed25519.pub
# Windows Git Bash
cat ~/.ssh/id_ed25519.pub
# 或直接复制到剪贴板:
clip < ~/.ssh/id_ed25519.pub复制全部内容(以 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB... 开头)。
GitHub 添加:
- 右上角头像 → Settings
- 左侧 → SSH and GPG keys → New SSH key
- Title 随便填(如 Obsidian-Mac),Key 粘贴 → Add SSH key
- Github会向邮箱发一封验证邮件,查看邮件完成验证。
3. Git 用 SSH 地址
3.1 终端测试连通性
ssh -T git@github.com
你应该能看到:
Hi 你的名字! You've successfully authenticated, but GitHub does not provide shell access.3.2 Obsidian使用
仓库远程地址改成 SSH 格式:
git@github.com:你的用户名/你的仓库名.git- Obsidian Git 设置里 → 远程 URL 填上面这个
- 认证选 SSH,不用填密码 / 令牌
3.3 Vscode使用
1. 克隆新仓库(用 SSH)
GitHub 仓库 → Code → 选 SSH
地址格式长这样:
git@github.com:用户名/仓库名.gitVS Code 终端克隆:
运行
git clone git@github.com:用户名/仓库名.git2. 已有仓库改成 SSH(不用重新克隆)
终端进入仓库目录,执行:
运行
git remote set-url origin git@github.com:用户名/仓库名.git3.4 解决TortoiseGit不识别密钥的问题
如果在使用Tortoise Clone仓库的时候报如下错误,
no supported authentication methons available (server sent:publickey)通常意味着,它找不到正确的“钥匙”(SSH密钥)来打开 GitHub 上的仓库。这大概率不是你的 SSH 密钥失效了,而是因为 Git Bash(命令行)和 TortoiseGit(图形界面)这两个工具认的“钥匙”文件格式不一样。
你电脑里有两个 SSH 工具:
- Windows 自带的 OpenSSH(你配置 GitHub 免密用的这个)
- TortoiseGit 自带的 TortoiseGitPlink
解决办法:让 TortoiseGit 使用系统 SSH(永久修复)
- 右键桌面 → TortoiseGit → Settings
- 左侧选 Network
- 找到 SSH client 选项
- 点击浏览,选择这个路径:
C:\Windows\System32\OpenSSH\ssh.exe4. 更换电脑的处理
比如,Windows 换 Mac,GitHub SSH 无缝迁移。核心结论:直接把 Windows 的 SSH 密钥拷贝到 Mac 即可,完全不用新建。
4.1 备份密钥
首先备份目录下的所有密钥相关文件
C:\Users\你的用户名\.ssh\里面有两个关键文件(一对,都要复制):
id_ed25519私钥(最重要,别泄露)id_ed25519.pub公钥
4.2 拷贝至Mac
换到 Mac 后,放到对应路径, 打开 Mac 终端,先创建 .ssh 文件夹(如果没有)
mkdir -p ~/.ssh然后把 Windows 拷来的 id_ed25519、id_ed25519.pub 扔进 Mac 路径
4.3 权限设置
另外注意,Mac 必须设权限(关键!不然 GitHub 不认),Mac 终端执行两条命令:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519作用:保护私钥权限,Mac 和 Git 才会认可这把密钥。
4.4 测试是否生效
Mac 终端执行:
ssh -T git@github.com输入 yes,看到 Hi 你的用户名! 成功认证 就搞定。