【Git】配置SSH密钥实现Git操作免密

news/2024/11/30 18:48:20/

背景

在使用Git推送代码的时候,会默认需要输入密码。如果经常推送代码,那就需要经常输入密码,比较繁琐。所以Git也提供了免密登录的功能。

Git本身支持两种协议对远程Git仓库进行访问:HTTPS、SSH。两种方式有一定的区别,不过区别不是本博客的重点,就不过多介绍。本文重点介绍通过SSH协议对远程仓库进行访问时,如何配置免密登录

配置免密

生成RSA密钥

打开cmd命令行,输入如下命令生成密钥:

ssh-keygen -t rsa -C "xxx"  # -C后面的内容是注释,可以随便填写

第一使用该命令时,之后会在用户目录下生成.ssh文件夹。其中会有一些文件,包括:id_rsaid_rsa.pub以及其他的文件。id_rsa是私钥,id_rsa.pub是公钥。

将公钥内容上传到Git服务器

将公钥文件中的内容复制,并保存到服务器的~/.ssh/authorized_keys文件中。

配置ssh

现在密钥有了,还需要在本机配置什么时候,用密钥进行免密登录。这里要用到~/.ssh文件夹中的config文件。需要注意,这个文件不是生成的,需要手动创建。创建好后,填写如下信息:

Host 服务器别名HostName 服务器主机名(IP)User 登录用户名IdentityFile ~/.ssh/id_rsa

其中

  • Host服务器别名是指,在使用ssh协议进行通讯的时候,不需要写完整的IP,只需要写别名就可以,比较方便
  • HostName就是服务器实际的IP
  • User是登录的用户名
  • IdentityFile是RSA私钥的路径

这里记录一个我遇到的坑。我之前在SSH的config文件中配置了一次服务器的相关信息。但是之后这个服务器突然搬到另外一个地方去了,IP变了,端口也变了。我之后再使用Git进行推送的时候,因为太久没配置ssh了,忘记了有config这个文件,以为把Git的IP改了就行了。结果死活推送不上去。之后才发现要改SSH的config文件吗,把端口去掉才行。

另外,SSH密钥是全局的,并不局限于在Git中使用。只要计算机通讯用到了SSH协议,都可以使用这个密钥进行免密登录,比如:

  • SSH命令,远程登录到另外一台机器
  • SCP命令,在本机和远程机器之间传输文件
  • Git相关的命令,比如git clone、git push等

http://www.ppmy.cn/news/1129165.html

相关文章

【青书学堂】 2023年第二学期 JavaScript 基础编程(高起专) 作业

【青书学堂】 2023年第二学期 JavaScript 基础编程(高起专) 作业 为了方便日后复习,青书学堂成人大专试题整理。 若有未整理的课程,请私信我补充,欢迎爱学习的同学们收藏点赞关注!文章内容仅限学习使用!!&a…

系统集成|第十九章(笔记)

目录 第十九章 风险管理19.1 风险管理的概述及相关概念19.2 主要过程19.2.1 规划风险管理19.2.2 识别风险19.2.3 实施定性风险分析19.2.4 实施定量风险分析19.2.5 规划风险应对19.2.6 控制风险 上篇:第十八章、安全管理 下篇:第二十章、收尾管理 第十九…

如何在Go中编写注释

引言 几乎所有的编程语言都有一种向代码添加注释的语法,Go也不例外。注释(comment)是程序中使用人类语言解释代码如何工作或为什么要这样写的行。编译器会忽略它们,但细心的程序员不会。注释添加了宝贵的上下文,可以帮助您的合作者(以及您未…

C# Task任务详解

文章目录 前言Task返回值无参返回有参返回 async和await返回值await搭配使用Main async改造 Task进阶Task线程取消测试用例超时设置 线程暂停和继续测试用例 多任务等最快多任务全等待 结论 前言 Task是对于Thread的封装,是极其优化的设计,更加方便了我…

电脑显示系统错误怎么办?

有时我们在开机时会发现电脑无法开机,并显示系统错误,那么这该怎么办呢?下面我们就一起来了解一下。 方法1. 替换SAM文件解决问题 1. 重启电脑并进入安全模式。 Win8/10系统:在启动电脑看到Windows标志时,长按电源键…

VS编译器常见的错误

以上问题在编译器中出现可以在编译器中最上面加入: #define_CRT_SECURE_NO_WARNINGS 或者将scanf修改为scanf_s 一定要在最上端!!!最上端!!!最上端加入!!! 虽…

成都瀚网科技:抖音上线地方方言自动翻译功能

为了让很多方言的地域历史、文化、习俗能够以短视频的形式生产、传播和保存,解决方言难以被更多用户阅读和理解的问题,平台正式上线推出当地方言自动翻译功能。创作者可以利用该功能,将多个方言视频“一键”转换为普通话字幕供大众观看。 具体…

K8S-EverNote同步

Node污点 释义看文档就好 https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ 污点是Node的属性 容忍度是Pod的属性 用来标记各自特征的,通常协同工作。 举个例子, 一个Node的污点 kubectl taint nodes node1 key1v…