IDEA中Git使用http协议和ssh协议的区别

简介: IDEA中Git使用http协议和ssh协议的区别

image.png
@[TOC]

IDEA中Git使用http协议和ssh协议的区别

一、Git传输协议

1.1 git可以使用以下四种协议进行资料的传输:

  • 本地协议(Local)
  • HTTP/HTTPS协议
  • SSH(Secure Shell)协议
  • git协议

    1.2 目前码云支持的协议

    HTTPS协议,ssh协议进行代码的推送/拉取

    二、https协议和ssh协议在使用上的差别

    原理上区别?
  • https协议每次fetch和push代码都需要输入账号和密码。
  • ssh协议在克隆之前必须配置和添加SSH Key,必须是这个仓库的拥有者。但不需要每次都输入账号和密码。

外观上区别?

ssh协议的: git@gitlab:hustle/backend/bigdata/bd-api.git

http协议的: http://gitlab/hustle/backend/bigdata/bd-api.git

2.1 http协议简介

HTTP协议(新,GitHub目前就使用了这种协议):支持读写模式。既可以像git://协议一样设置匿名服务,又可以像SSH一样提供传输时的授权和加密,而且只用一个URL就可以得到git://和SSH的功能,省去了为不同的需求设置不同的URL。 HTTP协议推送(push)以及拉取(pull),服务器都会询问你的用户名和密码。

HTTP协议的优点: 不同的访问方式只需要一个URL,服务器只在需要授权时提示输入授权信息。
相对于SSH而言,不需要生成SSH秘钥对再把秘钥上传到服务器上。
HTTP/S被广泛采用,一般的企业防火墙都会允许这些端口的数据通过。
缺点: 在一些服务器上,架设HTTP/S协议会比SSH协议棘手一些;每次需要输入用户名和密码,管理这些凭证会比较麻烦一些(当然你可以使用凭证存储工具,keychain(OSX))。

除此之外没有别的缺点。

2.2 ssh协议简介

SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
从客户端来看,有两种验证方式:基于密码、基于密钥
image.png
image.png

说明:
(1) 首先在客户端生成一对密钥(公钥、私钥);
(2) 客户端将生成的公钥拷贝到需要访问的服务端机器上;
(3) 当客户端再次发送一个连接请求,包括 ip、用户名;
(4) 服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有相应的 IP 和用户,就会随机生成一个字符串,例如:qwer;
(5) 服务端将使用客户端拷贝过来的公钥对随机字符串 qwer 进行加密,然后发送给客户端;
(6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;
(7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。

image.png

重要信息

image.png
image.png
image.png
image.png

目录
相关文章
|
15天前
|
消息中间件 NoSQL Redis
高可靠微服务消息设计:Outbox模式、延迟队列与Watermill集成实践
构建高可靠微服务,事件丢失和延迟任务一直是难题?本文带你从实战角度掌握 Outbox模式、延迟队列 及 Watermill+Redis Stream 集成方案,教你用Go打造可靠、可观测、毫秒级响应的事件驱动系统。
125 2
|
存储 安全 Java
新增11条新规约!阿里Java开发手册|黄山版,拥抱规范,远离伤害
阿里开发手册是阿里近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让Java开发者能够提升协作效率、提高代码质量。
4208 0
|
5月前
|
移动开发 前端开发 JavaScript
Canvas 绘图基础
Canvas是HTML5的绘图API,通过JavaScript实现像素级图形、动画和游戏开发。支持矩形、路径、圆形、文本、图像及渐变绘制,结合requestAnimationFrame可制作高性能动画,广泛应用于数据可视化、游戏与交互设计。
940 11
完美解决 fatal: unable to access ‘https://github.com/Homebrew/brew/‘
完美解决 fatal: unable to access ‘https://github.com/Homebrew/brew/‘
2600 0
|
NoSQL 数据可视化 前端开发
MongoDB可视化工具Robo 3T的下载、安装与使用介绍
【6月更文挑战第3天】该文介绍了如何下载和安装MongoDB的图形化工具Robo 3T。首先,建议在开始之前安装MongoDB。然后,访问Robo 3T官网下载安装包,接受条款并选择适合的操作系统版本(此处以Windows 64位为例)。下载后,运行安装程序,依次点击"Next",选择安装路径,等待安装完成。安装后,启动Robo 3T,同意用户协议,免费激活并登录或注册账号。最后,按照提示完成配置步骤。
3839 1
|
JavaScript 前端开发 Shell
NPM 自定义 package.json 中 scripts 命令(& 与 && 的区别,cross-env 的使用)
NPM 自定义 package.json 中 scripts 命令(& 与 && 的区别,cross-env 的使用)
716 0
|
JavaScript
成功解决:Failed to resolve directive: mode
这篇文章介绍了如何解决Vue中遇到的"Failed to resolve directive: mode"错误的两个常见原因及其解决办法:确保指令的单词拼写正确,以及在创建Vue实例之前注册全局指令。
成功解决:Failed to resolve directive: mode
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
831 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等