使用Git生成SSH密钥教程(附Git常用命令)

一、为什么使用SSH?

使用 Git 的 SSH(安全外壳协议)主要有以下几个原因:
1. 安全性:SSH 是一种加密的网络协议,用于在网络中安全地运行网络服务。使用 SSH,所有传输的数据都会被加密,这可以保护你的代码和敏感信息不被泄露。
2. 认证方式:SSH 提供了多种认证方式,其中最常用的是基于密钥的认证。这种方式比基于密码的认证更安全,因为密码不会在网络中传输,而且可以结合使用 SSH 密钥和密码,提供双重保护。
3. 便捷性:配置好 SSH 密钥后,你就可以在不输入用户名和密码的情况下安全地访问 Git 仓库,这对于频繁提交更改的开发者来说非常方便。
4. 灵活性:SSH 协议允许你通过单个端口进行多种类型的操作,比如远程登录、文件传输和端口转发等,这对于需要从多个角度管理服务器的开发者来说很有用。
5. 支持高频操作:由于 SSH 的连接在初次建立后可以被重用,因此对于频繁的 Git 操作(如推送和拉取),SSH 可以提供更快的速度。
6. 网络穿透能力:在某些网络环境下,可能只有 SSH 端口是开放的。在这种情况下,SSH 成为了连接远程仓库的唯一方式。
7. 服务器配置:许多 Git 服务器(如 GitHub、GitLab)默认支持 SSH,而且提供了详细的配置指南,使得设置和使用 SSH 相对简单。
8. 权限管理:通过 SSH,管理员可以更精细地控制对 Git 仓库的访问权限,比如可以限制某些操作只能通过 SSH 进行。
总之,使用 SSH 可以提高 Git 操作的安全性和效率,对于开源项目和个人私有项目都是推荐的做法。

二、以Git for Windows为例安装


1.安装Git for Windows
如果你还没有安装Git for Windows,可以从适用于 Windows 的 Git (gitforwindows.org)或者Git - Downloads (git-scm.com)下载并安装。


2.打开Git CMD
安装Git后,在Windows开始菜单中找到“Git”文件夹,然后打开“Git CMD”。


3.生成SSH密钥
在Git CMD中执行以下命令来生成新的SSH密钥:

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


这里,`-t rsa`指定密钥类型为RSA,`-b 4096`指定密钥长度为4096位,`-C`后跟的是你的电子邮件地址,这将作为密钥的注释。

按Enter键接受默认的文件位置(通常是`C:\Users\YourUsername\.ssh\id_rsa`)和文件名。

  1. 按下回车键后,系统会提示你输入保存密钥的文件路径。如果你不输入路径,它会默认在用户的家目录下创建一个 .ssh 文件夹,并在其中生成两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。

  2. 接下来,系统会要求你输入一个密码(passphrase)。这是可选的,但建议设置一个,以增加私钥的安全性。如果你不希望每次使用密钥时都输入密码,可以直接按回车键跳过,由于之前已经创建过所以这里提示了是否覆盖


4.查看SSH公钥
生成密钥后,你可以使用以下命令来查看并复制你的SSH公钥:

如果在git bash中:

cat ~/.ssh/id_rsa.pub

如果在powershell中:

先切换到.ssh文件夹,这里YourUsername是你实际的用户名:

cd C:\Users\YourUsername\.ssh

然后查看:

Get-Content .\id_rsa.pub

如果在CMD中:

先切换到.ssh文件夹,这里YourUsername是你实际的用户名:

cd C:\Users\YourUsername\.ssh

然后查看:

type id_rsa.pub


这将显示你的公钥,你可以使用鼠标选中并复制它。如果你的公钥文件名不是id_rsa.pub,请将命令中的id_rsa.pub替换为实际的文件名,win系统也可以直接用编辑器打开文件查看密钥。

三、SSH公钥使用


1.将公钥添加到SSH服务器或代码托管平台
接下来,你可以将复制的公钥添加到你的SSH服务器或代码托管平台(如GitHub、GitLab,Gitee)的SSH密钥设置中。


2.测试SSH连接
在添加公钥后,你可以通过以下命令测试SSH连接是否成功:

ssh -T git@github.com


如果你使用的是GitHub以外的平台,需要将`git@github.com`替换为相应的SSH地址。
按照提示操作,如果一切设置正确,你应该能够成功连接到服务器。
记得要妥善保管你的私钥(id_rsa文件),不要与他人分享,并且确保它存放在安全的地方。

  • SSH教程:SSH 教程 菜鸟教程 (cainiaojc.com)
  • 女生友好版教程:【Git】保姆级详解:Git配置SSH Key(密钥和公钥)到github-CSDN博客 

GIT常用命令图示( 源自B站:GeekHour)

 

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

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

相关文章

Mysql高级篇(下)——数据库备份与恢复

Mysql高级篇(下)——数据库备份与恢复 一、物理备份与逻辑备份1、物理备份2、逻辑备份3、对比4、总结 二、mysqldump实现逻辑备份1、mysqldump 常用选项2、mysqldump 逻辑备份语法(1)备份一个数据库(2)备份…

微服务架构---认识Zuul

目录 认识Zuul简单的例子 第一个Zuul程序步骤1:创建父工程zuul-1步骤2:创建HystrixController类步骤3:搭建服务消费者eureka-consumer项目(1)创建一个config包,在config包下新建配置类RestConfig&#xff0…

HCIP-HarmonyOS Application Developer 习题(八)

(填空)1、声明式开发范式中使用装饰器( )装饰的结构体具有组件化能力,能够成为一个自定义组件。 答案:component 分析:component 装饰的struct表示该结构体具有组件化能力,能够成为一个独立的组件&#xff…

基于springboot的篮球竞赛预约平台

作者:计算机搬砖家 开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:Java精选实战项…

【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则

文章目录 C 继承详解:初阶理解与实战应用前言第一章:继承的基本概念与定义1.1 继承的概念1.2 继承的定义 第二章:继承中的访问权限2.1 基类成员在派生类中的访问权限2.2 基类与派生类对象的赋值转换2.2.1 派生类对象赋值给基类对象2.2.2 基类…

OkHttp

OkHttp是一个用于Android和Java应用的高效HTTP客户端库。它具有以下优点: 优点 高效连接池: 支持连接复用(Connection Pooling)减少延迟。有效管理HTTP/2多路复用。 透明压缩: 自动处理Gzip压缩,减少传输…

Label Studio 半自动化标注

引言 Label Studio ML 后端是一个 SDK,用于包装您的机器学习代码并将其转换为 Web 服务器。Web 服务器可以连接到正在运行的 Label Studio 实例,以自动执行标记任务。我们提供了一个示例模型库,您可以在自己的工作流程中使用这些模型,也可以根据需要进行扩展和自定义。 1…

dotnet7==windows ZIP方式安装和web demo和打包

下载ZIP Download .NET 7.0 (Linux, macOS, and Windows) 解压 创建项目 mkdir MyWebApp cd MyWebApp "C:\Users\90816\Downloads\dotnet-sdk-7.0.317-win-x64\dotnet.exe" new webapp -n MyWebApp 运行项目 "C:\Users\90816\Downloads\dotnet-sdk-7.0.317-…

k8s的简介和部署

一、k8s简介 在部署应用程序的方式上面,主要经历了三个阶段: 传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源&…

Docker 实践与应用举例

Docker 实践与应用举例 Docker 已经成为现代软件开发和部署中的重要工具,通过容器化技术,开发者可以轻松管理应用的依赖环境、简化部署流程,并实现跨平台兼容性。本篇博客将详细介绍 Docker 的基本概念、实践操作以及应用场景,帮…

【软件部署安装】OpenOffice转换PDF字体乱码

现象与原因分析 执行fc-list查看系统字体 经分析发现,linux默认不带中文字体,因此打开我们本地的windows系统的TTF、TTC字体安装到centos机器上。 安装字体 将Windows的路径: C:\Windows\Fonts 的中文字体,如扩展名为 TTC 与TT…

shell脚本写代码

用简单的test语句来判断是否闰年 #! /bin/bash read -p "sd " yearif [ $((year%4)) -eq 0 -a $((year%100)) -ne 0 -o $((year%400)) -eq 0 ]thenecho "是润年"elseecho "不是闰年" fi判断一个数是否为偶数 #! /bin/bash read -p "…

LINUX——内核移植、内核编译教程

Linux内核编译是一个将内核源代码转换成可在特定硬件架构上运行的二进制文件的过程。以下是编译Linux内核的一般步骤: 1、准备工作: 确保安装了必要的编译工具,如gcc、make、ncurses库(用于make menuconfig)等。 2、…

数据结构-八大排序之堆排序

堆排序 1.1 基础知识 原理: 1. 利用完全二叉树构建大顶堆 2. 堆顶元素和堆底元素进行交换,除堆底元素之外其余元素继续构建大顶堆 3. 重复2,直到所有元素都不参与构建 整个数组排序完成 完全二叉树: 数据从上到下&#x…

雷池+frp 批量设置proxy_protocol实现真实IP透传

需求 内网部署safeline,通过frp让外网访问内部web网站服务,让safeline记录真实外网攻击IP safeline 跟 frp都部署在同一台服务器:192.168.2.103 frp client 配置 frpc只需要在https上添加transport.proxyProtocolVersion "v2"即…

基于SpringBoot的设备管理系统源码带本地搭建教程

技术框架:SpringBoot mybatis thymeleaf Mysql5.7 Fastjson Druid Shiro 运行环境:jdk8 IntelliJ IDEA maven 宝塔面板 系统功能:登陆,注册,系统用户管理,角色,部门管理,…

软件测试之压力测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&…

《恋与深空》陷抄袭争议,但不影响它登顶App Store畅销总榜

伴随着《恋与深空》全新混池而来的,是文案疑似抄袭的负面新闻。 9月23日,《恋与深空》上线了第一个国风混池“欲揽旖旎色”,但比玩家的夸奖与反馈更先来的,是男主角之一秦彻的剧情文案抄袭的争议,#恋与深空 抄袭#火速…

渗透测试入门学习——使用python脚本自动跟踪csrf_token实现对网站登录界面的暴力破解

目录 写在前面 使用方法 相关代码 写在前面 最近在学习使用Burp Suite时发现其intruder模块无法实现多种模式的混合使用,就如想要暴力破解账号和口令两个区域并同时跟踪网页的csrf_token时BP似乎不能很方便的实现这一功能,于是自己在练习时就想到了用…

三 星 SCX-4521F 硒 鼓 清 零 及 一 般 故 障 维 修 浅 谈

基本参数 耗材容量:SCX-4521D3/XIL(3000页) 功 率:平均功率350W、休眠模式10W 一般故障讲解 一、三星SCX-4521F打印机更换硒鼓(或加粉)后仍显示墨粉用尽 (加粉清零、关闭碳粉通知) 按菜单------#1934(快速按完)------屏幕会有TECH字母显示------菜单------向…