当前位置: 首页 > article >正文

在 Windows 上添加 github SSH 密钥

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

1. 检查是否已有SSH密钥

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

ls -al ~/.ssh

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

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

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

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:

# 启动 ssh-agent
eval $(ssh-agent -s)

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

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

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

  1. 复制公钥

    clip < ~/.ssh/id_rsa.pub
    

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

  2. 添加到 GitHub:

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

5. 测试SSH连接

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

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/ 目录下:

    ls -al ~/.ssh
    

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

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

    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 文件,添加如下内容:

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

    保存并关闭文件。

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

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa  # 或者你的私钥文件名
    
  7. 测试SSH连接
    完成上述步骤后,再次测试 SSH 连接:

    ssh -T git@github.com
    

其他调试步骤:

  • 终端输出更多调试信息
    使用没那么简约的方式来获得更多、详细的信息:
    ssh -vT git@github.com
    
    这会显示关于连接过程的所有详细信息,有助于分析出错原因。

注意事项

  • 每次修改密钥都需要重新添加到 ssh-agent。
  • 确保不会公开你的私钥(如 id_rsa),只需分享公钥(id_rsa.pub)。

http://www.kler.cn/a/444736.html

相关文章:

  • 通过阿里云 Milvus 与 PAI 搭建高效的检索增强对话系统
  • sql server索引优化语句
  • 【服务器】MyBatis是如何在java中使用并进行分页的?
  • OpenHarmony-3.HDF Display子系统(6)
  • 【Java Web】Axios实现前后端数据异步交互
  • 青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理
  • Unity录屏插件-使用Recorder录制视频
  • vscode不同的项目使用不同的环境变量或编译环境
  • 《小米创业思考》
  • 【数据库系列】MongoTemplate 基本入门:MongoDB 的增删改查
  • Ubuntu搭建ES8集群+加密通讯+https访问
  • 灯光开关切换(c++)
  • 实现 WebSocket 接入文心一言
  • Spring Boot 项目创建
  • 《Django 5 By Example》阅读笔记:p561-p613
  • Linux crontab 使用教程
  • 幂运算转換
  • Java基本概念6-JVM2
  • C语言中的变量自加操作:前自加与后自加的深入解析
  • AtomGit 开源生态应用开发赛报名开始啦
  • 【优选算法---前缀和】和为K的子数组、和可被K整除的子数组、连续数组、矩阵区域和
  • 武汉市电子信息与通信工程职称公示了
  • Guava 库中的 `Multimap` 是一个允许一个键对应多个值的集合 Guava `Multimap` 的基本代码示例:
  • CSSmodule的作用是什么
  • 《 QT 5.14.1 类库模块列表详述》
  • 解决 Amazon S3 管理控制台中 5GB 大小限制的问题