使用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.mzph.cn/diannao/55919.shtml

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

相关文章

Lory: 推进大型语言模型训练的新篇章

人工智能咨询培训老师叶梓 转载标明出处 随着模型规模的增长,如何有效训练并利用这些模型成为了一个挑战。陈丹琦团队一项新的研究提出了一种创新的预训练方法——Lory,旨在解决大模型在混合专家(MoE)架构中的可微分性和计算效率…

主机加固的关键要素:服务器防病毒

在数字化浪潮中,网络安全已成为企业不可忽视的一环。尤其是安全运维人员,他们肩负着保护企业数据不受侵害的重任。MCK主机加固解决方案,正是为了应对这一挑战而生。 网络安全的严峻现实 不久前,一家知名企业因勒索病毒攻击而被迫…

2024 kali虚拟机安装教程,分两大步骤,图文讲解(1)

第二步链接: 2024 kali虚拟机安装教程,分两大步骤,图文讲解(2)-CSDN博客 准备工作 1.kali的iso镜像文件 2.VMware Workstation Pro 虚拟机软件 正式开始 1.创建新的虚拟机,勾选自定义(高级…

ssm基于SSM框架的餐馆点餐系统的设计+VUE

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 摘要 I Abstract II 1绪论 1 1.1研究背景与意义 1 1.1.1研究背景 1 1.1.2研究意义 1 1.2国内外研究…

【AGC005D】~K Perm Counting(计数抽象成图)

容斥原理。 求出f(m) ,f(m)指代至少有m个位置不合法的方案数。 怎么求? 注意到位置为id,权值为v ,不合法的情况,当且仅当 v idk或 v id-k 因此,我们把每一个位置和权值抽象成点 ,不合法的情况之间连一…

Docker容器简介及部署方法

1.1 Docker简介 Docker之父Solomon Hykes:Docker就好比传统的货运集装箱 2008 年LXC(LinuX Contiainer)发布,但是没有行业标准,兼容性非常差 docker2013年首次发布,由Docker, Inc开发 1.1.1什么是Docker Docker是管理容器的引…

C/C++复习(三)

一.C基础复习 命名空间: 对于命名空间的使用,相信大家都是非常熟悉的了,现在我们就简单回忆下即可! 首先,为什么要有它呢?原因在于如果如何变量、函数名都直接放在全局中,在大型项目中非常容易和…

数据结构-LRU缓存(C语言实现)

遇到困难,不必慌张,正是成长的时候,耐心一点! 目录 前言一、题目介绍二、实现过程2.1 实现原理2.2 实现思路2.2.1 双向链表2.2.2 散列表 2.3 代码实现2.3.1 结构定义2.3.2 双向链表操作实现2.3.3 实现散列表的操作2.3.4 内存释放代…

Java后端面试----某团一面

美团一面 1.介绍一下你的第一个项目 这个就不多说了,主要是根据自己的简历上面的项目进行一个简短的概括使用的技术栈和什么背景解决了什么问题等等。 2.线程安全的类有哪些,平时有使用过哪些,主要解决什么问题 在Java中线程安全的类比如…

vue使用table实现动态数据报表(行合并)

<template><div class"previewTable"><h2>***项目研发数据报告</h2><table id"previewTable" width"100%"><tr><th>项目名称</th><td colspan"6">{{ resultData.proName }}<…

【D3.js in Action 3 精译_030】3.5 给 D3 条形图加注图表标签(下):Krisztina Szűcs 人物专访 + 3.6 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

一键将表格嵌入ppt作为附件!2个做ppt必知的技巧分享!

怎样把表格作为附件放入ppt&#xff1f; 众所周知&#xff0c;微软推出的Office套件包含了Powerpoint和Excel这两款软件&#xff0c;如果想在Powerpoint中插入表格&#xff0c;且表格数据量比较大&#xff0c;此时最好的呈现方式&#xff0c;是在Excel中来展示这些数据&#x…

使用Spring Security+jwt+redis实现登录注册逻辑

Spring Security Spring Security 是一个提供身份验证、授权和防御常见攻击的框架。它为保护命令式和响应式应用程序提供了一流的支持&#xff0c;是保护基于 Spring 的应用程序的事实标准。 这篇博客主要是记录自己第一次使用springSecurity实现登录逻辑的过程。 使用Spring…

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题 一句话省流&#xff1a; 确保项目地址没有任何中文&#xff0c;重新申请个许可证&#xff0c;然后该咋就咋&#xff0c;完事。 ——————————————————————————————…

滚雪球学Redis[2.2讲]:列表(List)

全文目录&#xff1a; 前言列表类型的使用场景典型使用场景示例 常用命令1. LPUSH&#xff1a;在列表左侧插入元素2. RPUSH&#xff1a;在列表右侧插入元素3. LPOP&#xff1a;从列表左侧弹出元素4. RPOP&#xff1a;从列表右侧弹出元素5. LLEN&#xff1a;获取列表的长度6. LR…

华为云应用侧Android测试APP

05.华为云应用侧Android测试APP 本APP在填写或修改部分参数后能够完成token获取&#xff0c;影子消息读取&#xff0c;命令下发。APP共包含三个界面&#xff1a;主界面获取token、影子消息获取界面、命令下发界面。 实现过程参见&#xff1a;华为云应用侧Android Studio开发-…

SQLITE 构建多表查询

在SQLite中,构建多表查询时,最常用的方式是使用 JOIN 操作符来连接多个表。下面是一些常见的查询方式及其示例: INNER JOIN INNER JOIN 是最常见的联接方式,它返回在两个表中都匹配的记录。```sql sql 复制代码 SELECT 表1.列名, 表2.列名 FROM 表1 INNER JOIN 表2 ON 表1.…

企业如何制定适合自己的专利布局策略

在竞争激烈的市场环境中&#xff0c;专利布局对于企业的发展和竞争优势的建立至关重要。以下将分要点解析企业如何制定适合自己的专利布局策略。 1、明确企业的发展战略和市场定位 企业首先需要深入了解自身的长期发展规划和短期业务目标。明确是要通过技术创新来开拓新市场&am…

微服务之间的相互调用的几种常见实现方式对比

目录 微服务之间的相互调用的几种实现方式 一、HTTP HTTP/RESTful API调用工作原理 二、RPC 设计理念与实现方式 协议与传输层 RPC远程调用工作原理 应用场景与性能考量 特点 三、Feign 设计理念与实现方式 协议与传输层 Feign调用的基本流程 Feign调用的工作原理…

Electron + ts + vue3 + vite

正常搭建脚手架&#xff1a;npm create vitelatest 项目名称 安装electron的相关依赖&#xff1a;注&#xff1a;安装时终端url要项目名那一层 安装npm install electron -D安装打包工具&#xff1a;npm install electron-builder -D开发工具&#xff1a;npm install electron-…