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

【技能---构建github中SSH密钥的流程】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • SSH
  • 基于账号口令的安全验证
  • 通过SSH连接到服务器
    • 打开终端(命令行界面)
    • 使用 SSH 命令连接:
  • 在 Ubuntu 中生成 SSH 密钥并将其添加到 GitHub 的步骤如下:
    • 步骤 1: 检查现有 SSH 密钥
    • 步骤 2: 生成新的 SSH 密钥
    • 步骤 3: 添加 SSH 密钥到 SSH-Agent
    • 步骤 4: 复制 SSH 公钥
    • 步骤 5: 将 SSH 公钥添加到 GitHub
    • 步骤 6: 测试 SSH 连接
  • 总结


前言

在使用github的过程中,遇到了创建SSH-Agent密钥管理的问题,于是乎进行了下面的操作:

在github上面添加秘钥的时候,保存会出现这个错误:

Key is invalid. You must supply a key in OpenSSH public key format

提示:以下是本篇文章正文内容,下面案例可供参考

SSH

SSH(Secure Shell)是一种用于安全远程登录到计算机系统和执行命令的协议。它通过加密通信的方式,确保用户在网络上的连接是安全的。

以下是 SSH 的主要特点和功能:

安全性: SSH 提供了加密的通信,包括身份验证和数据传输。这使得在不受信任的网络上安全地进行远程管理成为可能。

远程登录: SSH 允许用户从本地计算机登录到远程计算机系统,并在远程系统上执行命令。

文件传输: SSH 支持安全的文件传输,允许用户在本地和远程系统之间传输文件。

端口转发: SSH 可以用于设置端口转发,将本地计算机的端口映射到远程计算机上,实现安全的网络服务。

公钥身份验证: SSH 支持公钥身份验证,允许用户通过公钥和私钥对进行身份验证,而无需输入密码。

代理: SSH 代理(ssh-agent)可用于缓存和管理用户的私钥,以便在会话期间无需再次输入密码。

隧道: SSH 支持创建安全的通信隧道,用于加密和保护网络上的数据传输。

基于账号口令的安全验证

基于账号口令的安全验证是一种常见的身份验证机制,用户需要提供正确的账号(用户名)和口令(密码)才能访问系统或服务。这种验证方式的基本原理如下:

账号: 用户需要提供其唯一标识,通常是一个用户名。这是用于标识用户身份的信息。

口令: 用户必须提供与其账号相关联的密码。这是一个保密信息,只有用户本人应该知道。密码通常通过哈希算法进行存储,以增加安全性。

验证过程: 当用户尝试登录或访问系统时,输入的账号和口令将与系统中存储的相应信息进行比对。如果输入的信息与系统记录的匹配,用户将被授权访问。

安全性考虑:为了增加安全性,密码应该足够复杂,并且定期更新。系统还可以采用一些防护措施,如账号锁定(一定次数失败后锁定账号)、多因素认证等。

通过SSH连接到服务器

通过 SSH 连接到服务是通过 Secure Shell(SSH)协议建立远程连接的过程。以下是连接到服务的基本步骤:

打开终端(命令行界面)

使用 SSH 命令连接:

在终端中使用 ssh 命令来建立 SSH 连接。基本的 SSH 连接命令格式如下:

ssh username@hostname

username 是远程服务器上的用户名。
hostname 是远程服务器的主机名或 IP 地址。

例如:

ssh user@example.com

或者,如果使用 IP 地址:

ssh user@192.168.1.100

输入密码: 如果是首次连接或之前未缓存过该服务器的公钥,系统会要求输入密码。输入正确的密码后按回车键。

认证过程: SSH 将进行身份验证并建立加密连接。一旦认证成功,你将进入远程服务器的命令行界面。

如果连接成功,你就可以在远程服务器上执行命令、编辑文件等操作。在连接的过程中,SSH 会确保通信是加密的,从而提供了一种安全的远程访问方式。

在 Ubuntu 中生成 SSH 密钥并将其添加到 GitHub 的步骤如下:

步骤 1: 检查现有 SSH 密钥

首先,检查是否已经存在 SSH 密钥。打开终端并执行以下命令:

ls -al ~/.ssh

查看目录中是否存在 id_rsa 和 id_rsa.pub 文件。如果这两个文件存在,你已经有了一个 SSH 密钥。

我的终端输出:

(base) l@l:~$ l -al ~/.ssh
总用量 16
drwxrwxr-x  2 l l 4096 911 14:44 .
drwxr-xr-x 61 l l 4096 124 11:24 ..
-rw-rw-r--  1 l l  113 913 13:58 config
-rw-r--r--  1 l l 2440 1130 18:11 known_hosts

即是没有相应的文件,于是执行下面的命令:

步骤 2: 生成新的 SSH 密钥

如果在步骤 1 中不存在 SSH 密钥,或者你想要生成一个新的密钥对,执行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

在这个命令中,将 “your_email@example.com” 替换为你的 GitHub 注册邮箱。按照提示,你可以选择为新密钥指定文件名和路径,或者直接按 Enter 使用默认路径。

我的终端输出:

base) l@l:~$ ssh-keygen -t rsa -b 4096 -C "z@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/l/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/l/.ssh/id_rsa
Your public key has been saved in /home/l/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:RRTmtjOHhGF8mZgFKoCBHiRaArYWnnKXBlt8vzOFlS4 z@163.com
The key's randomart image is:
+---[RSA 4096]----+
|O*+..  .+**=     |
|B++=...o+**      |
|+=+ =....==      |
|oo o .  E+oo     |
|        S+= .    |
|        +  +     |
|         o       |
|                 |
|                 |
+----[SHA256]-----+

如果出现以上打印内容, 则说明你生成成功了

步骤 3: 添加 SSH 密钥到 SSH-Agent

运行以下命令将 SSH 密钥添加到 SSH-Agent:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

我的终端输出:

(base) l@l:/media/l$ eval "$(ssh-agent -s)"
Agent pid 152382
(base) l@l:/media/l$ ssh-add ~/.ssh/id_rsa
Identity added: /home/l/.ssh/id_rsa (z@163.com)
(base) l@l:/media/l$ xclip -sel clip < ~/.ss

步骤 4: 复制 SSH 公钥

执行以下命令来将 SSH 公钥复制到剪贴板:

xclip -sel clip < ~/.ssh/id_rsa.pub

我的终端输出:

(base) l@l:/media/ls$ xclip -sel clip < ~/.ssh/id_rsa.pubCommand 'xclip' not found, but can be installed with:sudo apt install xclip

如果没有安装 xclip,你可以使用以下命令:

sudo apt-get install xclip

再次运行:

xclip -sel clip < ~/.ssh/id_rsa.pub

步骤 5: 将 SSH 公钥添加到 GitHub

登录到你的 GitHub 帐户。

在右上角,点击你的头像,然后选择 “Settings”。

在左侧导航栏中,点击 “SSH and GPG keys”。

点击 “New SSH key”。

在 “Title” 字段中,为密钥提供一个描述性的名称。

在 “Key” 字段中,粘贴你复制的 SSH 公钥。

点击 “Add SSH key”。

步骤 6: 测试 SSH 连接

最后,为了测试是否成功,运行以下命令:

ssh -T git@github.com

如果一切设置正确,你将看到类似以下的消息:

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

至此,你已经成功生成并添加 SSH 密钥,可以使用 SSH 协议与 GitHub 进行通信。


总结

okok ,以上就是构建github中SSH密钥的流程,如有不当之处,还请大家斧正!!!!

相关文章:

【技能---构建github中SSH密钥的流程】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言SSH基于账号口令的安全验证通过SSH连接到服务器打开终端&#xff08;命令行界面&#xff09;使用 SSH 命令连接&#xff1a; 在 Ubuntu 中生成 SSH 密钥并将其添…...

linux-centos服务器离线安装yapi(包含nodejs、mongodb、yapi、pm2离线安装)

yapi是使用vue框架开发的,借助nodejs 前端直接访问的mongodb数据库,离线安装yapi步骤如下 下载离线安装包 下载地址 https://download.csdn.net/download/qq445829096/88778418 离线安装包先复制到 dev/yapi目录(根据自己习惯自定义目录) node-v12.13.0-linux-x64.tar.xz …...

手撕重采样,考虑C的实现方式

一、参考文章&#xff1a; 重采样、上采样、下采样 - 知乎 (zhihu.com) 先直接给结论&#xff0c;正常重采样过程如下&#xff1a; 1、对于原采样率fs&#xff0c;需要重采样到fs1&#xff0c;一般fs和fs1都是整数哈&#xff0c;则先找fs和fs1的最小公倍数&#xff0c;设为m…...

网络安全产品之认识入侵防御系统

由于网络安全威胁的不断演变和增长。随着网络技术的不断发展和普及&#xff0c;网络攻击的种类和数量也在不断增加&#xff0c;给企业和个人带来了巨大的安全风险。传统的防火墙、入侵检测防护体系等安全产品在面对这些威胁时&#xff0c;存在一定的局限性和不足&#xff0c;无…...

​第20课 在Android Native开发中加入新的C++类

​这节课我们开始利用ffmpeg和opencv在Android环境下来实现一个rtmp播放器&#xff0c;与第2课在PC端实现播放器的思路类似&#xff0c;只不过在处理音视频显示和播放的细节略有不同。 1.压缩备份上节课工程文件夹并修改工程文件夹为demo20&#xff0c;将demo20导入到Eclipse或…...

python学习笔记11(程序跳转语句、空语句)

&#xff08;一&#xff09;程序跳转语句 1、break 用法&#xff1a;循环语句中使用&#xff0c;结束本层循环&#xff0c;一般搭配if来使用。注意while/else语法 示例&#xff1a; i0; while i<3:user_nameinput(请输入用户名&#xff1a;)pwdinput("请输入密码&a…...

C. Doremy‘s City Construction(二分图问题)

思路&#xff1a;把集合划分成两部分,一部分中每个数都比另一部分小,这两部分连成一个完全二分图,这种情况是最优的,还需要特判所有数都相等的情况. 代码&#xff1a; void solve(){int n;cin >> n;vector<int>a(n 1);for(int i 1;i < n;i )cin >> a[…...

PHP“引用”漏洞

今日例题&#xff1a; <?php highlight_file(__FILE__); error_reporting(0); include("flag.php"); class just4fun { var $enter; var $secret; } if (isset($_GET[pass])) { $pass $_GET[pass]; $passstr_replace(*,\*,$pass); } $o unser…...

计算机网络-AAA原理概述

对于任何网络&#xff0c;用户管理都是最基本的安全管理要求之一&#xff0c;在华为设备管理中通过AAA框架进行认证、授权、计费实现安全验证。 一、AAA概述 AAA&#xff08;Authentication(认证), Authorization(授权), and Accounting(计费)&#xff09;是一种管理框架&#…...

Oracle BIEE 示例(一)数据透视表2

1 背景 版本:BIEE 12C 视图:数据透视表 实现内容(顺序与具体内容不一致): 2 空列显示(方法一) 2.1 问题 列为空时,标题栏不显示信息。 2.2 期望 即使数据为空,也要显示列名。 2.3 官方资料 2.3.1 操作步骤 2.3.1.1 要在分析级别关闭空值隐藏,请执行以下操作…...

算法训练营Day50(动态规划11)

说明 较难&#xff0c;二刷再仔细打代码 123.买卖股票的最佳时机III 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 提醒 这道题一下子就难度上来了&#xff0c;关键在于至多买卖两次&#xff0c;这意味着可以买卖一次&#xff0c;可以买卖两次&a…...

DS:顺序表的实现(超详细!!)

创作不易&#xff0c;友友们给个三连呗&#xff01; 本文为博主在DS学习阶段的第一篇博客&#xff0c;所以会介绍一下数据结构&#xff0c;并在最后学习对顺序表的实现&#xff0c;在友友们学习数据结构之前&#xff0c;一定要对三个部分的知识——指针、结构体、动态内存管理的…...

用flinkcdc debezium来捕获数据库的删除内容

我在用flinkcdc把数据从sqlserver写到doris 正常情况下sqlserver有删除数据&#xff0c;doris是能捕获到并很快同步删除的。 但是我现在情况是doris做为数仓&#xff0c;数据写到ods&#xff0c;ods的数据还会通过flink计算后写入dwd层&#xff0c;所以此时ods的数据是删除了…...

mariadb数据库从入门到精通

mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化一、实验前提二、mariadb数据库的安装三、mariadb数据库安全初始化3.1 设定数据库基本的安全初始化3.2关闭对外开放端口 系列文章目录一、查看数据库二、进入库并且查看…...

LabVIEW探测器CAN总线系统

介绍了一个基于FPGA和LabVIEW的CAN总线通信系统&#xff0c;该系统专为与各单机进行系统联调测试而设计。通过设计FPGA的CAN总线功能模块和USB功能模块&#xff0c;以及利用LabVIEW开发的上位机程序&#xff0c;系统成功实现了CAN总线信息的收发、存储、解析及显示功能。测试结…...

侧输出流(Side Output)

侧输出流&#xff08;Side Output&#xff09;是处理函数中的一个重要功能&#xff0c;允许我们将自定义的数据发送到侧输出流中进行处理或输出。通过将数据发送到侧输出流&#xff0c;我们可以将不同的数据流进行分离&#xff0c;以便进行不同的处理和操作。 在处理函数中&…...

Vue 动态组件与异步组件:深入理解与全面应用

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. 动态组件实现原理&#xff1a;用法示例&#xff1a; 2. 异步组件实现原理&#xff1a;用法示例&#xff1a; 3. 异步组件的高级应用a. 异步组件的命名&#xff1a;b. 异步组件的加载状态管理&#xff1a; ⭐ 写在最后 ⭐ 专栏简…...

Zephyr 源码调试

背景 调试环境对于学习源码非常重要&#xff0c;但嵌入式系统的调试环境搭建稍微有点复杂&#xff0c;需要的条件略多。本文章介绍如何在 Zephyr 提供的 qemu 上调试 Zephyr 源码&#xff0c;为后续分析 Zephyr OS 相关原理做铺垫。 环境 我的开发环境为 wsl ubuntu&#xf…...

数学建模绘图

注意&#xff1a;本文章旨在记录观看B站UP数模加油站之后的笔记文章&#xff0c;无任何商业用途~~ 必备网站 以下网站我都试过&#xff0c;可以正常访问 配色&#xff08;取色&#xff09;网站&#xff1a; Color Palettes Generator and Color Gradient Tool Python&#x…...

代码随想录算法训练营第十天 | 239.滑动窗口最大值、347.前K个高频元素

代码随想录算法训练营第十天 | 239.滑动窗口最大值、347.前K个高频元素 文章目录 代码随想录算法训练营第十天 | 239.滑动窗口最大值、347.前K个高频元素1 LeetCode 239.滑动窗口最大值2 LeetCode 347.前K个高频元素 1 LeetCode 239.滑动窗口最大值 题目链接&#xff1a;https…...

懒人必备!OpenClaw 汉化版一键配置上手教程

一、Windows 11 安装 OpenClaw 必看说明 OpenClaw&#xff08;国内用户昵称"小龙虾"&#xff09;是一款广受欢迎的开源本地AI助手&#xff0c;GitHub星标数已超28万。它集成了多项实用功能&#xff1a;电脑自动操控、智能文件管理、浏览器自动化以及办公流程自动化等…...

为什么92%的AI音频项目在ElevenLabs声音库选型阶段就失败?——资深AI音频架构师12年踩坑复盘

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么92%的AI音频项目在ElevenLabs声音库选型阶段就失败&#xff1f; ElevenLabs 的声音库看似丰富——超 500 个语音模型、多语言支持、情感调节滑块一应俱全&#xff0c;但真实项目落地中&#xff0…...

如何在10分钟内搭建AI与Figma双向通信系统:TalkToFigma MCP完整指南

如何在10分钟内搭建AI与Figma双向通信系统&#xff1a;TalkToFigma MCP完整指南 【免费下载链接】cursor-talk-to-figma-mcp TalkToFigma: MCP integration between AI Agent (Cursor, Claude Code) and Figma, allowing Agentic AI to communicate with Figma for reading des…...

Arm架构在中国市场的机遇、挑战与实战指南

1. 项目概述&#xff1a;Arm架构的“中国故事”与我的观察最近几年&#xff0c;在技术圈和投资圈里&#xff0c;“Arm架构”和“中国市场”这两个词的组合热度一直居高不下。作为一名长期关注处理器架构和产业生态的从业者&#xff0c;我几乎每周都能在行业交流、客户会议甚至供…...

BilibiliDown:一键下载B站音频的跨平台神器

BilibiliDown&#xff1a;一键下载B站音频的跨平台神器 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili…...

保姆级教程:用命令行搞定npm 2FA配置,告别网页来回跳转

命令行极客指南&#xff1a;npm 2FA全流程自动化实战 每次发布npm包都要掏出手机查验证码&#xff1f;在无头服务器上部署时被2FA卡住&#xff1f;作为命令行重度用户&#xff0c;我们完全可以在终端里完成从启用、日常使用到禁用2FA的全流程。本文将带你用纯CLI方式打通npm双因…...

别再死记硬背了!用Python模拟LDPC和Polar码的编码过程(附代码)

Python实战&#xff1a;用可视化方法理解LDPC与Polar码的核心原理 在无线通信系统的物理层设计中&#xff0c;信道编码技术如同数据的"防弹衣"&#xff0c;保护信息在充满噪声的传输环境中安全抵达。本文将带你用Python构建两种5G核心编码方案——LDPC码和Polar码的简…...

AI技能白日梦:让大模型通过自主推演实现能力进化

1. 项目概述&#xff1a;当AI学会“白日做梦”最近在GitHub上看到一个挺有意思的项目&#xff0c;叫regiep4/skill-daydreaming。光看这个名字&#xff0c;就让人浮想联翩——“技能白日梦”&#xff1f;这听起来不像是一个传统的工具库或者框架&#xff0c;更像是一种对AI能力…...

别再只刷Demo了!手把手教你用CCS给AWR1843毫米波雷达写自己的‘大脑’

从Demo玩家到雷达开发者&#xff1a;AWR1843毫米波雷达CCS深度开发实战 毫米波雷达技术正在智能驾驶、工业检测等领域掀起革命浪潮。作为TI明星产品&#xff0c;AWR1843凭借其高性价比和丰富功能成为众多开发者的首选。但大多数用户止步于运行官方Demo&#xff0c;未能真正释放…...

ADAU1701的隐藏玩法:不写代码,用SigmaStudio模块库实现5.1虚拟环绕和动态低音

ADAU1701音效魔法&#xff1a;零代码打造虚拟环绕与智能低音系统 在追求极致音效体验的今天&#xff0c;专业级音频处理不再是大型音响厂商的专利。借助ADAU1701这颗强大的音频DSP芯片和SigmaStudio图形化开发环境&#xff0c;即使没有任何DSP编程经验的开发者&#xff0c;也能…...