在 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)。
相关推荐
AiFlutter1 分钟前
Linux安全之SSH密钥创建及密钥登陆
linux·安全·ssh
咖猫1 小时前
Guava 提供了集合操作 `List`、`Set` 和 `Map` 三个工具类
windows·list·guava
染指11104 小时前
49.第二阶段x86游戏实战2-鼠标点击call深追二叉树
汇编·c++·windows·游戏安全·反游戏外挂·游戏逆向
月巴月巴白勺合鸟月半4 小时前
一个小工具
windows·delphi
hurrycry_小亦5 小时前
(Windows系统)详细介绍Windows系统 含有英文版
windows
vvw&5 小时前
如何在 Ubuntu 上安装 NodeBB 并使用 Nginx 反向代理
linux·运维·服务器·nginx·ubuntu·github·论坛
网硕互联的小客服5 小时前
如何排查服务器是否有被黑客入侵的迹象?
linux·运维·服务器·windows
LaughingZhu6 小时前
Github Action Bot
前端·经验分享·github
破局缘6 小时前
apt文件问题ruby.list文件
开发语言·windows·ruby