在 Windows 上添加 github SSH 密钥

news/2024/12/20 20:45:25/
github-gist">

在 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 为空。

sshagent_23">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.comHostName github.comUser gitIdentityFile ~/.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.ppmy.cn/news/1556728.html

相关文章

从机器人到高速线,线缆行业如何提升竞争力

【哔哥哔特导读】机器人行业发展有何新趋势&#xff1f;AI高速线的竞争格局如何&#xff1f;线缆行业如何避免“内卷式竞争”&#xff1f;对话业内人士&#xff0c;解析行业最新发展趋势。 当前&#xff0c;机器人作为热门市场&#xff0c;成为智能制造整体战略方向中的重要板…

[LeetCode-Python版] 876. 链表的中间结点

题目 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个中间结点&#xff0c;值为…

LeetCode 刷题笔记

LeetCode 刷题笔记 1. 20241218 &#xff08;1&#xff09;2447 std::gcd是C17引入的一个函数&#xff0c;用于计算两个整数的最大公因数。位于<numeric>头文件中。 #include <iostream> #include <numeric> // std::gcdint main() {int a 36;int b 60…

BlueLM:以2.6万亿token铸就7B参数超大规模语言模型

一、介绍 BlueLM 是由 vivo AI 全球研究院自主研发的大规模预训练语言模型&#xff0c;本次发布包含 7B 基础 (base) 模型和 7B 对话 (chat) 模型&#xff0c;同时我们开源了支持 32K 的长文本基础 (base) 模型和对话 (chat) 模型。 更大量的优质数据 &#xff1a;高质量语料…

使用Python进行excel的数据简单分析

Python代码&#xff0c;需要将处理后分析得到的数据存储到与当前目录下的一个Excel文件中去。 完整的Python代码&#xff08;初&#xff09;&#xff1a; import pandas as pd import os# 读取Excel文件 file_path 供应链分析.xlsx excel_data pd.ExcelFile(file_path)# 读取…

【Linux】常用命令大全

【Linux】命令大全 【一】文件【1】文件基本属性&#xff08;1&#xff09;ll或者ls –l查看文件的属性以及文件所属的用户和组 【2】文件属主和属组【3】更改文件属性&#xff08;1&#xff09;chgrp&#xff1a;更改文件属组&#xff08;2&#xff09;chown&#xff1a;更改文…

12.7深度学习_经典神经网络_VGG

一、VGG神经网络 ​ VGG的亮点在于它通过堆叠多个卷积层&#xff0c;以小的卷积核和池化层的方式来增加网络深度&#xff0c;从而实现高精度的图像识别。这种方法可以有效地捕获图像中的高级特征&#xff0c;并通过不断拟合训练数据来提高识别准确率。 1. 小卷积作用 ​ DC …

单步调试Android Framework——App冷启动

纸上得来终觉浅&#xff0c;绝知此事要躬行。 —— [宋]陆游 基于aosp_cf_x86_64_phone-trunk_staging-eng &#xff0c; 下面是具体断点位置。 第一部分&#xff0c;桌面launcher进程 com.android.launcher3.touch.ItemClickHandler onClickonClickAppShortcutstartAppShor…