ubuntu添加 SSH 密钥到 GitHub

好的,以下是详细的步骤,帮助你在 Ubuntu 上生成并添加 SSH 密钥到 GitHub:

1. 检查是否已有 SSH 密钥

首先,检查你是否已经有 SSH 密钥:

ls -al ~/.ssh

如果看到 id_rsaid_ed25519 文件,则表示你已有 SSH 密钥。如果没有这些文件,继续下一步。

2. 生成新的 SSH 密钥

如果你没有 SSH 密钥,可以通过以下命令生成一个新的:

使用 Ed25519 算法生成密钥(推荐)
ssh-keygen -t ed25519 -C "your_email@example.com"
使用 RSA 算法生成密钥(备选)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

系统会提示你输入保存密钥的文件路径。按回车键使用默认路径 (/home/your_username/.ssh/id_ed25519/home/your_username/.ssh/id_rsa)。

然后会提示你输入一个密码短语,虽然这是可选的,但建议设置一个以增加安全性。

3. 启动 SSH 代理并添加 SSH 密钥

启动 SSH 代理:

eval "$(ssh-agent -s)"

添加 SSH 私钥到 SSH 代理:

对于 Ed25519 密钥
ssh-add ~/.ssh/id_ed25519
对于 RSA 密钥
ssh-add ~/.ssh/id_rsa

4. 将 SSH 公钥添加到 GitHub

复制公钥内容:

对于 Ed25519 公钥
cat ~/.ssh/id_ed25519.pub
对于 RSA 公钥
cat ~/.ssh/id_rsa.pub

复制输出的内容。

5. 添加公钥到 GitHub

  1. 登录到 GitHub。
  2. 点击右上角的头像,选择 “Settings”。
  3. 在左侧菜单中选择 “SSH and GPG keys”。
  4. 点击 “New SSH key”。
  5. 在 “Title” 字段中输入一个描述性的名称(如“Ubuntu Laptop”)。
  6. 在 “Key” 字段中粘贴刚才复制的公钥内容。
  7. 点击 “Add SSH key”。

6. 验证 SSH 连接

你可以使用以下命令来验证你的 SSH 连接是否有效:

ssh -T git@github.com

如果连接成功,会看到类似于以下的消息:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

7. 克隆仓库

现在你应该可以使用 SSH URL 来克隆 GitHub 仓库:

git clone git@github.com:username/repository.git

总结

通过生成 SSH 密钥、将其添加到 SSH 代理,并将公钥添加到 GitHub,你现在应该能够无缝地使用 SSH 进行 Git 操作。如果你遇到任何问题,请确保你执行了每一个步骤,并且公钥正确添加到了你的 GitHub 账户中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s 中的金丝雀发布(灰度发布)

目录 1 什么是金丝雀发布 2 Canary 发布方式 3 Canary 两种发布方式实操 3.1 准备工作 3.1.1 将 nginx 命名两个版本 v1 与 v2 3.1.2 暴露端口并指定微服务类型 3.1.3 进入 pod 修改默认发布文件 3.1.4 测试 service 是否正常 3.2 基于权重的灰度发布 3.2.1 创建 Igress 资源类…

MS SQL Server 实战 统计与汇总重复记录

目录 需求 范例运行环境 数据样本设计 功能实现 上传EXCEL文件到数据库 分组统计 SQL 语句 分组汇总 SQL 语句 having 语句过滤最终统计结果 小结 需求 在日常的数据管理应用中,统计和汇总重复记录的情况是经常遇到的一个问题,然后我们会根据统…

谢希仁计算机网络 (四)—— 网络层

计算机网络(四)—— 网络层(1、2):网络层概述、网络层提供的两种服务 计算机网络(四)—— 网络层(1、2):网络层概述、网络层提供的两种服务_以下属于网络层范…

IntelliJ IDEA 2024.2 新特性概览

文章目录 1、重点特性:1.1 改进的 Spring Data JPA 支持1.2 改进的 cron 表达式支持1.3 使用 GraalJS 作为 HTTP 客户端的执行引擎1.4 更快的编码时间1.5 K2 模式下的 Kotlin 性能和稳定性改进 2、用户体验2.1 改进的全行代码补全2.2 新 UI 成为所有用户的默认界面2.3 Search E…

传感器模块编程实践(二)W5500 SPI转以太网模块简介及驱动源码

文章目录 一.概要二.W5500芯片介绍W5500通讯协议介绍 三.W5500模块介绍四.W5500模块原理图五.W5500以太网模通讯实验六.CubeMX工程源代码下载七.小结 一.概要 我们介绍过单片机的以太网系统一般是由:单片机MACPHYRJ45。有些单片机比如STM32F407VET6芯片内部自带MAC…

深度学习:GAN图像生成

GAN的诞生背景 诞生: 2014年由Ian Goodfellow提出 创新性: 无监督学习:GAN 提供了一种新的方法来进行无监督学习,即不需要对训练数据进行标注就可以学习到数据的潜在分布。对抗训练:通过引入对抗机制,G…

pygame--超级马里奥(万字详细版)

超级马里奥点我下载https://github.com/marblexu/PythonSuperMario 1.游戏介绍 小时候的经典游戏,代码参考了github上的项目Mario-Level-1,使用pygame来实现,从中学习到了横版过关游戏实现中的一些处理方法。原项目实现了超级玛丽的第一个小…

iSTFT 完美重构的条件详解

目录 引言1. 短时傅里叶变换(STFT)与逆变换(iSTFT)概述2. 完美重构的条件3. 数学推导4. 实现要点5. 示例代码6. 总结 引言 在数字信号处理领域,短时傅里叶变换(Short-Time Fourier Transform,简…

鸿蒙next开发者第一课02.DevEcoStudio的使用-习题

【习题】DevEco Studio的使用 通过/及格分80/ 满分100 判断题 1. 如果代码中涉及到一些网络、数据库、传感器等功能的开发,均可使用预览器进行预览。F 正确(True)错误(False) 预览器不能进行传感器等特殊功能的开发,需要使用真机开发 2. module.json5文件中的…

栈与队列面试题(Java数据结构)

前言: 这里举两个典型的例子,实际上该类型的面试题是不确定的! 用栈实现队列: 232. 用栈实现队列 - 力扣(LeetCode) 方法一:双栈 思路 将一个栈当作输入栈,用于压入 push 传入的数…

初始爬虫12(反爬与反反爬)

学到这里,已经可以开始实战项目了,多去爬虫,了解熟悉反爬,然后自己总结出一套方法怎么做。 1.服务器反爬的原因 服务器反爬的原因 总结: 1.爬虫占总PV较高,浪费资源 2.资源被批量抓走,丧失竞争力…

动态规划10:174. 地下城游戏

动态规划解题步骤: 1.确定状态表示:dp[i]是什么 2.确定状态转移方程:dp[i]等于什么 3.初始化:确保状态转移方程不越界 4.确定填表顺序:根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接:174.…

小米路由器ax1500+DDNS+公网IP+花生壳实现远程访问

有远程办公的需求,以及一些其他东西。 为什么写? ax1500路由器好像没搜到相关信息。以及其中有一点坑。 前置 公网ip Xiaomi路由器 AX1500 MiWiFi 稳定版 1.0.54 实现流程 花生壳申请壳域名https://console.hsk.oray.com/ 这里需要为域名实名认证 …

Linux:进程调度算法和进程地址空间

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 进程调度算法 1.1 进程队列数据结构 1.2 优先级 ​编辑 1.3 活动队列 ​编辑 1.4 过期队列 1.5 active指针和expired指针 1.6 进程连接 二 进程地址空间 2.1 …

《大规模语言模型从理论到实践》第一轮学习--Fine-tuning微调

第一轮学习目标:了解大模型理论体系 第二轮学习目标:进行具体实操进一步深入理解大模型 从大语言模型的训练过程来理解微调 大预言模型训练主要包含四个阶段:预训练、有监督微调、奖励建模、强化学习。 预训练(Pretraining&…

linux中缓存,在kafka上应用总结

linux中的缓存 页缓存 pagecatch(读缓存用于提供快速读)块缓存(用于提供其他设备快速写)当对读缓存读的时候,修改了读的数据,页缓存就会被标记为脏数据,等到写的时候它会向块缓存同步数据&…

Redis缓存穿透雪崩击穿及解决

封装缓存空对象解决缓存穿透与逻辑过期解决缓存击穿工具类 Slf4j Component public class CacheClient {private final StringRedisTemplate stringRedisTemplate;public CacheClient(StringRedisTemplate stringRedisTemplate) {this.stringRedisTemplate stringRedisTemplat…

Word办公自动化的一些方法

1.Word部分内容介绍 word本身是带有格式的一种文档,有人说它本质是XML,所以一定要充分利用标记了【样式】的特性来迅速调整【格式】,从而专心编辑文档内容本身。 样式(集) 编号(多级关联样式编号&#xff…

操作系统 | 学习笔记 | 王道 | 3.1 内存管理概念

3 内存管理 3.1 内存管理概念 3.1.1 内存管理的基本原理和要求 内存可以存放数据,程序执行前需要先放到内存中才能被CPU处理—缓和cpu和磁盘之间的速度矛盾 内存管理的概念 虽然计算机技术飞速发展,内存容量也在不断扩大,但仍然不可能将所有…

Kubernetes-环境篇-02-ubuntu开发环境搭建

1、ubuntu基础环境 # 更新apt软件源 sudo apt update# 安装git sudo apt install git# 安装python3 sudo apt install -y python3 python3-pip# 安装vim sudo apt install vim2、安装go 2.1 下载go安装包 wget https://golang.google.cn/dl/go1.23.2.linux-amd64.tar.gz2.2 …