在 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)。
相关推荐
程序猿_极客2 小时前
【2025 年最新版】Java JDK 安装与环境配置教程(附图文超详细,Windows+macOS 通用)
java·开发语言·windows·macos·jdk
杨靳言先5 小时前
✨【运维实战】内网服务器无法联网?巧用 SSH 隧道实现反向代理访问公网资源 (Docker/PortForwarding)
服务器·docker·ssh
C++ 老炮儿的技术栈5 小时前
在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
c语言·c++·windows·git·vscode·visual studio
pVPkTAeVGPdZ7 小时前
码垛机器人分析与仿真:基于Matlab Simulink Simscape的探索
windows
一点事8 小时前
windows:安装rabbitMQ
windows·rabbitmq·ruby
小镇学者8 小时前
【python】python项目是如何部署到服务器上的
服务器·python·github
SunkingYang9 小时前
Windows系统怎么修改系统文件如user32.dll的控制权限(无法保存对xxx权限所做的更改,拒绝访问,怎么处理)
windows·系统文件·控制权限修改·无法保存·拒绝访问
yaoxin5211239 小时前
296. Java Stream API - 二元操作符与“单位元“
java·服务器·windows
用什么都重名10 小时前
Conda 虚拟环境安装配置路径详解
windows·python·conda
有泽改之_11 小时前
ssh命令使用
linux·运维·ssh