Git 详细教程之五:SSH 免密登陆 GitHub

本文介绍了如何通过SSH协议实现与GitHub的免密连接,包括SSH的工作流程、Git与GitHub的SSH配置步骤,以及如何测试SSH连接。通过配置SSH公钥,用户可以在进行Git操作时避免每次都需要输入密码,提高开发效率。
摘要由CSDN通过智能技术生成

   由于每次 Git 对远程库 GitHub 进行推送(push)等操作时都需要进行登陆验证才可以进行,比较麻烦。本篇博客提供了一种新的链接方式:『Git 详细教程之五:SSH 免密登陆 GitHub』,通过 SSH 链接配置后,当前电脑连接 GitHub 操作远程仓库就不需要频繁的验证身份了。

   如果您是第一次学习 Git ,请先阅读博主的前几篇文章:

一、SSH 介绍

   SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。SSH协议通过对网络数据进行加密和验证,相比于传统的远程登录或文件传输方式,例如Telnet、FTP,其在不安全的网络环境中提供了安全的登录和其他安全网络服务。目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。

   SSH 的工作流程:

  • 建立连接:SSH 服务器在指定的端口侦听客户端的连接请求,在客户端向服务器发起连接请求后,双方建立一个TCP连接。
  • 版本协商:SSH 协议目前存在 SSH1.X(SSH2.0之前的版本)和 SSH2.0 版本。SSH2.0 协议相比SSH1.X 协议来说,在结构上做了扩展,可以支持更多的认证方法和密钥交换方法,同时提高了服务能力。SSH 服务器和客户端通过协商确定最终使用的 SSH 版本号。
  • 算法协商:SSH 支持多种加密算法,双方根据各自支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用于数据信息加密的加密算法、用于进行数字签名和认证的公钥算法以及用于数据完整性保护的 HMAC 算法。
  • 密钥交换: 服务器和客户端通过密钥交换算法,动态生成共享的会话密钥和会话 ID,建立加密通道。会话密钥主要用于后续数据传输的加密,会话 ID 用于在认证过程中标识该 SSH 连接。
  • 用户认证:SSH 客户端向服务器端发起认证请求,服务器端对客户端进行认证。SSH 支持以下几种认证方式:
    • 密码(password)认证:客户端通过用户名和密码的方式进行认证,将加密后的用户名和密码发送给服务器,服务器解密后与本地保存的用户名和密码进行对比,并向客户端返回认证成功或失败的消息。
    • 密钥(publickey)认证:客户端通过用户名,公钥以及公钥算法等信息来与服务器进行认证;
    • Password-Publickey认证:指用户需要同时满足密码认证和密钥认证才能登录;
    • All 认证:只要满足密码认证和密钥认证其中一种即可;
  • 会话请求:认证通过后,SSH 客户端向服务器端发送会话请求,请求服务器提供某种类型的服务,即请求与服务器建立相应的会话。
  • 会话交互:会话建立后,SSH 服务器端和客户端在该会话上进行数据信息的交互。

二、Git 与 GitHub 的 SSH 连接配置

   每个远程仓库除了有 HTTPS 链接外,还配备了一个 SSH 链接,我们只要点击『Code』 > 『SSH』就能查看到,但是此时 GitHub 提示我们还未添加任何 SSH 公钥,暂时无法使用。因此,我们需要对 GitHub 的 SSH 连接进行配置。

在这里插入图片描述

  • Step 1:进入本地计算机目录『C:\Users\(你的用户名)』,右键打开『Git Bash』,生成 SSH 秘钥,基本语法为:
ssh-keygen -t rsa -C 用户名邮箱

在这里插入图片描述

   执行该条命令后,会有三次键入,第一次直接回车,第二次会提示输入密码(直接回车表示无密码,输入密码时不会有任何显示),第三次是再次输入密码。完成后,在『C:\Users\(你的用户名)』下会生成一个 .ssh 文件夹,里边装有 SSH 秘钥文件。

在这里插入图片描述

  • Step 2:用记事本打开公钥,复制里面的内容。

在这里插入图片描述

  • Step 3:把公钥配置到 GitHub 上。

   打开 GitHub 官网,并登录账号,点击右上角头像,后选择『Settings』:

在这里插入图片描述

   点击『SSH and GPG keys』>『New SSH key』,添加公钥:

在这里插入图片描述

   输入公钥标题和内容,点击『Add SSH key』:

在这里插入图片描述

   由此,出现以下界面则表示添加成功了。(如果添加失败请检查公钥格式是否正确)

在这里插入图片描述


三、测试 Git 与 GitHub 的 SSH 连接

  • Step 1:找到项目仓库的 SSH 链接并复制下来:

在这里插入图片描述

  • Step 2:利用 SSH 链接拉取(pull)一下远程库进行测试。执行 git pull SSH链接 master 命令:

在这里插入图片描述

   由此看出,我们拉取成功了,并且无需进行任何登陆验证。注意:GitHub 提示的一大堆信息是第一次使用 SSH 秘钥需要确定一下,后续使用就不会有这些提示了。

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PanyCG_pc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值