Skip to content
Github Ssh免密设置

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 添加:

  1. 右上角头像 → Settings
  2. 左侧 → SSH and GPG keysNew SSH key
  3. Title 随便填(如 Obsidian-Mac),Key 粘贴 → Add SSH key
  4. 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:用户名/仓库名.git

VS Code 终端克隆:

运行

git clone git@github.com:用户名/仓库名.git

2. 已有仓库改成 SSH(不用重新克隆)

终端进入仓库目录,执行:

运行

git remote set-url origin git@github.com:用户名/仓库名.git

3.4 解决TortoiseGit不识别密钥的问题

如果在使用Tortoise Clone仓库的时候报如下错误,

no supported authentication methons available (server sent:publickey)

通常意味着,它找不到正确的“钥匙”(SSH密钥)来打开 GitHub 上的仓库。这大概率不是你的 SSH 密钥失效了,而是因为 Git Bash(命令行)和 TortoiseGit(图形界面)这两个工具认的“钥匙”文件格式不一样。

你电脑里有两个 SSH 工具:

  1. Windows 自带的 OpenSSH(你配置 GitHub 免密用的这个)
  2. TortoiseGit 自带的 TortoiseGitPlink

解决办法:让 TortoiseGit 使用系统 SSH(永久修复)

  • 右键桌面 → TortoiseGit → Settings
  • 左侧选 Network
  • 找到 SSH client 选项
  • 点击浏览,选择这个路径:
  C:\Windows\System32\OpenSSH\ssh.exe

4. 更换电脑的处理

比如,Windows 换 Mac,GitHub SSH 无缝迁移。核心结论:直接把 Windows 的 SSH 密钥拷贝到 Mac 即可,完全不用新建

4.1 备份密钥

首先备份目录下的所有密钥相关文件

C:\Users\你的用户名\.ssh\

里面有两个关键文件(一对,都要复制):

  1. id_ed25519 私钥(最重要,别泄露)
  2. id_ed25519.pub 公钥

4.2 拷贝至Mac

换到 Mac 后,放到对应路径, 打开 Mac 终端,先创建 .ssh 文件夹(如果没有)

mkdir -p ~/.ssh

然后把 Windows 拷来的 id_ed25519id_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 你的用户名! 成功认证 就搞定。