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

ssh 公私钥(github)

一、生成ssh公私钥

生成自定义名称的SSH公钥和私钥对,需要使用ssh-keygen命令,这是大多数Linux和Unix系统自带的标准工具。下面,简单展示如何使用ssh-keygen命令来生成具有自定义名称的SSH密钥对

步骤 1: 打开终端

首先,打开我们的终端(或命令提示符)。在Windows上,我们可能需要使用PuTTYgen或者通过Git Bash来执行相似的命令,但这个指南将关注标准的Unix-like环境。

步骤 2: 生成密钥对

接下来,使用以下命令生成一个新的SSH密钥对。这里,your_custom_name应该被替换为我们想要用于密钥文件的名称。不要加.pub或者任何其它的后缀,因为ssh-keygen会自动为公钥文件添加.pub后缀。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/your_custom_name

这条命令中的参数说明如下:

  • -t rsa: 指定密钥类型,这里是RSA。
  • -b 4096: 指定密钥的位数,这里是4096位,当前推荐的安全长度。
  • -C "your_email@example.com": 添加一个注释(通常是电子邮件地址)到密钥中。这对于识别用途在哪、属于谁很有帮助。
  • -f ~/.ssh/your_custom_name: 指定生成密钥的路径和文件名。这里~/.ssh/是SSH目录的标准位置,your_custom_name是你的自定义文件名。

步骤 3: 输入密码(可选)

在执行命令后,系统可能会提示我们输入一个密码(passphrase)。这一步是可选的,但是推荐我们为密钥对设置一个密码以增加安全性。如果不想设置密码,直接按回车键跳过。

步骤 4: 验证生成的密钥

生成密钥对后,我们可以通过列出~/.ssh目录的内容来验证它们是否成功创建:

ls ~/.ssh

应该看到我们的自定义文件名和同名的.pub文件,例如:

your_custom_name  your_custom_name.pub

your_custom_name是私钥文件,而your_custom_name.pub是公钥文件。

步骤 5: 使用SSH密钥

现在我们已经有了自定义命名的SSH密钥对,可以开始使用它们了。例如,我们可以把公钥(.pub文件)添加到想要通过SSH连接的服务器上的~/.ssh/authorized_keys文件中,从而实现无密码登录。

这样,我们就成功生成了一个自定义命名的SSH密钥对。确保保管好私钥,并且只将公钥共享给需要它的服务或个人。

二、 git 上传项目

手把手教你用git上传项目到GitHub(图文并茂,这一篇就够了),相信你一定能成功!! - 知乎GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好。 GitHub可以免费使用,并且快速稳定。即使是付费帐户,每个月不超过10美刀的费用也非常便宜。 利用GitHub,你可以将…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/193140870

本地项目目录
git init
git add .
git commit -m "提交文件"
git remote add origin git@github.com:XXXXXX/XXXXXXXX.git上传
git push -u origin master     输入 yes

三、尝试向GitHub推送代码时收到"Permission denied (publickey)"错误

当在尝试向GitHub推送代码时收到"Permission denied (publickey)"错误,意味着GitHub无法通过公钥认证的SSH连接。这个问题通常由以下几个原因引起:

  1. 未将SSH公钥添加到GitHub账户:GitHub需要公钥来验证身份。
  2. SSH密钥没有加载到SSH代理:即使有一个SSH公钥,它也需要被SSH代理加载。
  3. SSH配置问题:有时候SSH配置不正确也会导致这个问题。

按以下步骤来解决这个问题:

步骤 1: 确认SSH公钥已添加到GitHub

  1. 在你的电脑上打开终端,使用cat命令查看你的公钥内容。假设密钥名称为id_rsa.pub,运行:

    cat ~/.ssh/id_rsa.pub

    如果使用的是其他名称,请相应地替换文件名。

  2. 登录到GitHub账户,进入Settings > SSH and GPG keys

  3. 点击New SSH key 按钮,将公钥(步骤1中显示的内容)粘贴到框中,并保存。

步骤 2: 确认SSH密钥已加载到SSH代理

  1. 运行ssh-add -l查看已加载的密钥。如果密钥已加载,这个命令将列出它们。

  2. ssh-add -l
  3. 如果你的密钥没有被列出,使用ssh-add ~/.ssh/id_rsa来添加它。如果你使用的是自定义名称,确保正确地替换了路径和文件名。

  4. ssh-add ~/.ssh/custom_id_rsa

步骤 3: 尝试SSH到GitHub

运行以下命令来测试你的SSH连接到GitHub:

ssh -T git@github.com

如果连接成功,你将看到一条欢迎信息。这表示SSH设置正确。

步骤 4: 再次尝试git操作

在确认SSH设置无误后,再次尝试执行你的git命令:

git push -u origin master

怎么删除之前添加的一些无效的SSH代理呢?

删除之前add的无效SSH代理的方式

假设之前添加了几个不同的密钥到SSH代理,现在想删除它们:

  1. 查看已加载的密钥

    ssh-add -l
  2. 删除特定的密钥(例如:~/.ssh/custom_key):

    ssh-add -d ~/.ssh/custom_key
  3. 删除所有的密钥:

    ssh-add -D

相关文章:

ssh 公私钥(github)

一、生成ssh公私钥 生成自定义名称的SSH公钥和私钥对,需要使用ssh-keygen命令,这是大多数Linux和Unix系统自带的标准工具。下面,简单展示如何使用ssh-keygen命令来生成具有自定义名称的SSH密钥对。 步骤 1: 打开终端 首先,打开我…...

LangChain入门:8.打造自动生成广告文案的应用程序

在这篇技术博文中,我们将探讨如何利用LangChain框架的模板管理、变量提取和检查、模型切换以及输出解析等优势,打造一个自动生成广告文案的应用程序。 LangChain框架的优势 在介绍应用程序之前,让我们先了解一下LangChain框架的几个优势: 模板管理: 在大型项目中,文案可…...

AI如何影响装饰器模式与组合模式的选择与应用

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章:设计模式深度解析:AI如何影响…...

【C语言环境】Sublime中运行C语言时MinGW环境的安装

要知道,GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。 目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种,分别为 MinGW 和 Cygwin…...

Ubuntu18.04 下Ublox F9P 实现RTK (利用CORS服务无需自建基站)

本内容参考如下连接:Ubuntu下Ublox F9P利用CORS服务无需自建基站实现RTK-CSDN博客 一、Ublox F9P 硬件模块示意图 图中展示了Ublox F9P的接口,包括串口2(`UART1`和`UART2`),USB1。需要人为通过u-center(Ublox F9P的显示软件)软件设置以下功能: Ublox通过`UART1`向PC端发送…...

springboot+vue在idea上面的使用小结

1.在mac上面删除java的jdk方法: sudo rm -rfjdk的路径 sudo rm -rf /Users/like/Library/Java/JavaVirtualMachines/corretto-17.0.10/Contents/Home 2.查询 Mac的jdk版本和路径: /usr/libexec/java_home -V 3.mac上面查询和关闭idea的网页端口&…...

MyEclipse将项目的开发环境与服务器的JDK 版本保持一致

前言 我们使用MyEclipse开发Java项目开发中,偶尔会遇到因项目开发环境不协调,导致这样那样的问题,在这里以把所有环境调整为JDK1.6 为例。 操作步骤 1.Window-->Preferences-->Java-->Installed JRES 修改为 1.6版本 2.Window-->…...

为BUG编程:函数重载的烦恼 char *匹配bool而不是string

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 这是一个BUG。 运行环境为linu…...

C++第十四弹---模板初阶

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、泛型编程 2、函数模板 2.1、函数模板的概念 2.2、函数模板的格式 2.3、函数模板的原理 2.4、函数模板的实例化 2.5、模板参数的匹配原则 …...

C++--内联函数

当调用一个函数时,程序就会跳转到该函数,函数执行完毕后,程序又返回到原来调用该函数的位置的下一句。 函数的调用也需要花时间,C中对于功能简单、规模小、使用频繁的函数,可以将其设置为内联函数。 内联函数&#xff…...

java数组与集合框架(一) -- 数据结构,数组

数据结构 概述 为什么要讲数据结构? 任何一个有志于从事IT领域的人员来说,数据结构(Data Structure)是一门和计算机硬件与软件都密切相关的学科,它的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储…...

React 应用实现监控可观测性最佳实践

前言 React 是一个用于构建用户界面的 JavaScript 框架。它采用了虚拟 DOM 和 JSX,提供了一种声明式的、组件化的编程模型,以便更高效地构建用户界面。无论是简单还是复杂的界面,React 都可以胜任。 YApi 是使用 React 编写的高效、易用、功…...

批处理(Batch)把Excel文件xls格式和xlsx格式进行互换

批处理(Batch)把Excel文件xls格式改成xlsx格式以及xlsx格式改为xls格式。 Case1:xls转xlsx - 单个文件.bat $Excel New-Object -ComObject Excel.Application $Excel.Visible $false $Workbook $Excel.Workbooks.Open("C:\Test\Excel\1.xls&qu…...

Adobe ColdFusion 任意文件读取漏洞复现(CVE-2024-20767)

0x01 产品简介 Adobe ColdFusion是美国奥多比(Adobe)公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言,将可扩展、改变游戏规则且可靠的产品的愿景变为现实。 0x02 漏洞概述 由于 Adobe ColdFusion 的访问控制不当,未经身份认证的远程攻击者可以构造恶…...

搜索与图论——Floyd算法求最短路

floyd算法用来求多源汇最短路 用邻接矩阵来存所有的边 时间复杂度O(n^3) #include<iostream> #include<cstring> #include<algorithm>using namespace std;const int N 20010,INF 1e9;int n,m,k; int g[N][N];void floyd(){for(int k 1;k < n;k ){f…...

春招冲刺百题计划--矩阵篇

289. 生命游戏 题目&#xff1a; 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态&#xff1a; 1 即为 活细胞 &#xff08;live&#xff09;&#xff0c;或 0 即为 死细胞 &#xff08;dead&#xff09;。每个细胞与…...

LLM大语言模型(八):ChatGLM3-6B使用的tokenizer模型BAAI/bge-large-zh-v1.5

背景 BGE embedding系列模型是由智源研究院研发的中文版文本表示模型。 可将任意文本映射为低维稠密向量&#xff0c;以用于检索、分类、聚类或语义匹配等任务&#xff0c;并可支持为大模型调用外部知识。 BAAI/BGE embedding系列模型 模型列表 ModelLanguageDescriptionq…...

MySQL中的三种日志

MySQL 包括三种类型的⽇志&#xff0c;分别是 binlog、 redolog 和 undolog&#xff0c;它们分别有不同的作⽤和特点。 binlog &#xff08;存档日志&#xff09; binlog&#xff08;Binary log&#xff09;是 MySQL 中的⼆进制⽇志⽂件&#xff0c;是 Server 层⽣成的的⽇志…...

Codeforces Round 932 (Div. 2)(A,B,C,D)

比赛链接 AB都是思维&#xff0c;更确切地说&#xff0c;A考了字符串字典序&#xff0c;很经典的贪心考点&#xff0c;B考了MEX运算。C出的还是比较好的&#xff0c;dp方法值得学习。D题是个不太好想的容斥&#xff0c;主要是变量有点多&#xff0c;容易搞混。 A. Entertainme…...

初识C++ · 入门(2)

目录 1 引用 1.1引用的概念 1.2 引用的特性 2 传值&#xff0c;传引用的效率 3 引用和指针的区别 4 内联函数 4.1 内联函数的定义 4. 2 内联函数的特性 5 关键字auto 5.1关于命名的思考 5.2 关于auto的发展 5.3 auto使用规则 6 范围for的使用 7 空指针 1 引用 …...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...