在 Windows 上添加 github SSH 密钥

在 Windows 上添加 SSH 密钥的步骤如下:

1. 检查是否已有SSH密钥

首先,打开 Git Bash 或 Windows Terminal,输入以下命令查看是否已有 SSH 密钥:

bash 复制代码
ls -al ~/.ssh

如果你看到 id_rsaid_rsa.pub(或其他的文件名以 .pub 结尾),则已经存在 SSH 密钥。

2. 生成新的SSH密钥(如果没有)

如果没有现有密钥,你可以生成一个新的 SSH 密钥:

bash 复制代码
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 替换 your_email@example.com 为你的邮箱。
  • 如果询问你要保存密钥的位置,直接按 Enter 以使用默认位置(~/.ssh/id_rsa)。
  • 如果提示输入密码短语,可以选择输入一个(提供额外的安全性),或直接按 Enter 为空。

3. 添加SSH密钥到ssh-agent

确保 ssh-agent 正在运行,并将 SSH 密钥添加到 ssh-agent:

bash 复制代码
# 启动 ssh-agent
eval $(ssh-agent -s)

# 添加 SSH 密钥
ssh-add ~/.ssh/id_rsa

4. 将SSH密钥添加到GitHub/GitLab等平台

接下来,你需要将生成的公钥添加到你的 GitHub 或 GitLab 账户中:

  1. 复制公钥

    bash 复制代码
    clip < ~/.ssh/id_rsa.pub

    这个命令会把公钥复制到剪贴板。

  2. 添加到 GitHub:

    • 登录到你的 GitHub 帐户。
    • 进入 Settings > SSH and GPG keys > New SSH key
    • 在 "Title" 中输入描述,粘贴公钥到 "Key" 字段,然后点击 "Add SSH key"。

5. 测试SSH连接

完成上述步骤后,可以测试 SSH 连接是否成功:

bash 复制代码
ssh -T git@github.com

如果提示 Hi username! You've successfully authenticated, but GitHub does not provide shell access,说明设置成功。

常见错误和解决步骤:

如果在使用 ssh -T git@github.com 命令时出现"Permission denied (publickey)"的错误,说明 SSH 身份验证失败,可能是由于以下几种原因造成的:

  1. 确认SSH密钥存在

    再次检查你的 SSH 密钥是否存在于 ~/.ssh/ 目录下:

    bash 复制代码
    ls -al ~/.ssh

    确认你的公钥(一般是 id_rsa.pubid_ed25519.pub)确实存在。

  2. 确保SSH密钥已添加到ssh-agent

    确保 SSH 代理已启动并且将密钥添加到代理中。输入以下命令:

    bash 复制代码
    eval $(ssh-agent -s)
    ssh-add ~/.ssh/id_rsa  # 或者你的私钥文件名

    注意:

    如果在window cmd中运行,无法使用 eval $(ssh-agent -s),需要使用命令start-ssh-agent.cmd来启动 ssh-agent,ssh-add ~/.ssh/id_rsa命令的使用方法一致

  3. 检查SSH公钥是否正确添加到GitHub

    确保你已将正确的公钥添加到 GitHub 帐户中。再去 GitHub 设置里查看:

    • 登录 GitHub。
    • 进入 Settings > SSH and GPG keys
    • 确保你看到的公钥是你刚生成或使用的那把。
  4. 确认使用的GitHub邮箱

    确保你的 GitHub 帐号与用来生成 SSH 密钥时使用的电子邮件匹配。不同的 SSH 密钥对应不同的 GitHub 帐号。

  5. 编辑SSH配置(可选)

    如果你的公钥的文件名不是 id_rsa,你可能需要在 ~/.ssh/config 文件中配置它。创建或编辑 ~/.ssh/config 文件,添加如下内容:

    bash 复制代码
    Host github.com
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519  # 或者你的私钥的名称

    保存并关闭文件。

  6. 更改文件权限

    确保 .ssh 目录和密钥文件的权限正确。可以通过以下命令查看并修改权限:

    bash 复制代码
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa  # 或者你的私钥文件名
  7. 测试SSH连接

    完成上述步骤后,再次测试 SSH 连接:

    bash 复制代码
    ssh -T git@github.com

其他调试步骤:

  • 终端输出更多调试信息
    使用没那么简约的方式来获得更多、详细的信息:

    bash 复制代码
    ssh -vT git@github.com

    这会显示关于连接过程的所有详细信息,有助于分析出错原因。

注意事项

  • 每次修改密钥都需要重新添加到 ssh-agent。
  • 确保不会公开你的私钥(如 id_rsa),只需分享公钥(id_rsa.pub)。
相关推荐
有道AI情报局10 小时前
网易有道龙虾 NAS 服务器部署与实战指南
github
徐小夕12 小时前
JitWord 2.3: 墨定,行远
前端·vue.js·github
CoovallyAIHub14 小时前
实时视觉AI智能体框架来了!Vision Agents 狂揽7K Star,延迟低至30ms,YOLO+Gemini实时联动!
算法·架构·github
CoovallyAIHub15 小时前
开源:YOLO最强对手?D-FINE目标检测与实例分割框架深度解析
人工智能·算法·github
ZengLiangYi15 小时前
写了个脚本,把 Gitee/GitLab 仓库一键批量迁移到 GitHub
github
CoovallyAIHub15 小时前
OpenClaw:从“19万星标”到“行业封杀”,这只“赛博龙虾”究竟触动了谁的神经?
算法·架构·github
徐小夕17 小时前
pxcharts Ultra V2.3更新:多维表一键导出 PDF,渲染兼容性拉满!
vue.js·算法·github
开源之眼17 小时前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
逛逛GitHub18 小时前
OpenClaw之父多次点名!国产 Agent 进入真干活时代。
github
郭钊荣19 小时前
为什么 OpenClaw 能出圈:扒一扒小龙虾的agent系统设计
后端·github