Git仓库由HTTPS切换成ssh秘钥连接
Git关联远程仓库可以使用https协议或者ssh协议。
【特点/优缺点】
ssh:
一般使用22端口;
通过先在本地生成SSH密钥对再把公钥上传到服务器;
速度较慢点
https:
一般使用443端口;
通过用户名/密码授权,可用性比较高;
速度较快点
一般企业防火墙会打开80和443这两个http/https协议的端口,因此在架设了企业防火墙的时候使用https就可以很好的绕开安全限制使用git了,很方便;而对于ssh来说,企业防火墙很可能没打开22端口。
【使用区别】
clone项目:
使用ssh方式时,需要配置ssh key,即要将生成的SSH密钥对的公钥上传至服务器;
使用https方式时,没有要求,可以直接克隆下来。
push项目:
使用ssh方式时,不需要验证用户名和密码,之前配置过ssh key,(如果你没设置密码)直接push即可;
使用https方式时,需要验证用户名和密码。
【总结】
HTTPS利于匿名访问,适合开源项目,可以方便被别人克隆和读取(但没有push权限);
SSH不利于匿名访问,比较适合内部项目,只要配置了SSH公钥极可自由实现clone和push操作。
鉴于公司突然由Git仓库由HTTPS切换成ssh秘钥连接,做一些该方面的博客整理。
1、生成密钥对
2、设置远程仓库上的公钥
3、把git的 remote url 修改为git协议(以上两个步骤初次设置过以后,以后使用都不需要再次设置,此步骤视以后项目的remote url而定,如果以后其他项目的协议为https则需要此步骤)
1、生成密钥对
$ ssh-keygen -t rsa -C "your_email@youremail.com"
1 Generating public/private rsa key pair.
2 Enter file in which to save the key (/home/you/.ssh/id_rsa):
3 Created directory '/c/Users/Administrator/.ssh'.
4 Enter passphrase (empty for no passphrase):
5 Enter same passphrase again:
第2条:秘钥存储的位置,建议不要修改位置
第4/5条:秘钥口令密码,建议不设置,直接回车
注:若之前设置有ssh公钥,找不到的话,直接覆盖掉即可
查看已有秘钥:上面创建时有提示秘钥位置,找到文件id_rsa.pub,用编辑器打开,复制出公钥
2、设置远程仓库上的公钥
在远程仓库中,右上角头像-设置-SSH公钥,把公钥粘贴到输入框中,设置公钥有效期,然后点击添加公钥

测试SSH连接
GitHub
$ ssh -T git@github.com(填写自己仓库的SSH连接)
3、把git的 remote url 修改为git协议
$ git remote -v
origin https://github.com/someaccount/someproject.git (fetch)
origin https://github.com/someaccount/someproject.git (push)
复制此ssh连接,然后使用命令** git remote set-url** 来调整你的url
$ git remote set-url origin git@github.com:someaccount/someproject.git
//第一次连接
$ git remote add origin git@gitee.com:qiphon/music-thumb.git
$ git push -u origin master
然后你可以再用命令 git remote -v 查看一下,url是否已经变成了ssh地址
最后验证一下是否成功
$ git pull
——纸上得来终觉浅,绝知此事要躬行——
参考链接1:https://www.cnblogs.com/wannananana/p/12059806.html
参考链接2:https://www.cnblogs.com/wangdapang/p/10181823.html
参考链接3:https://blog.csdn.net/qiphon3650/article/details/79376028
参考链接4:https://www.cnblogs.com/dayang12525/p/12509053.html
Git仓库由HTTPS切换成ssh秘钥连接的更多相关文章
- 在windows上使用ssh秘钥连接git服务器
git部署在centos7上 安装好git后,新建一个用户test(注意要加入git用户组)配置ssh秘钥登录,我的另一篇博客有写配置步骤 重点的地方是在windows系统上使用秘钥登录git服务器 ...
- 生成SSH秘钥连接github(详细教程)
第一步.首先,检查下自己之前有没有已经生成: 在开始菜单中打开git下的git bash(当然,在其他目录下打开git bash也是一样的): 然后执行 cd ~/.ssh 第二步.如果能进入到.ss ...
- 【Git 三】生成并添加SSH秘钥
我们在 Windos 或 Linux 上克隆项目的时候, 如果走的是 http 会让输入 username 和 password,每次都要输入是很麻烦的. 为了省事儿.简单,我们可以选择 ssh 方式 ...
- ssh-key 与 git账户配置以及多账户配置,以及通信方式从https切换到ssh
参考:http://www.cnblogs.com/dubaokun/p/3550870.html 在使用git的时候,git与远程服务器是一般通过ssh传输的(也支持ftp,https),我们在管理 ...
- TortoiseGit与GIt生成ssh秘钥添加到github账号的简单方法!简单使用
今天升级了自己电脑上的git与TortoiseGit,全部换成了最新版,后来不知道怎么的git的秘钥还能使用,可以直接拉取或者提交ssh地址克隆的代码,可是小乌龟客户端就悲剧了 公司的项目有key.p ...
- git配置ssh秘钥(公钥以及私钥)linux
本文默认已经安装git,并有github或者gitlab账号 git在linux下安装参考:https://www.cnblogs.com/lz0925/p/10791147.html 在Linux中 ...
- 配置使用 git 秘钥连接 GitHub
配置使用 git 秘钥连接 GitHub 在Linux下部署Git环境 1.安装Git. 使用命令安装 git . sudo apt-get install git 2.创建一个 Github 账号 ...
- github使用ssh秘钥的好处以及设置(转)
git使用https协议,每次pull,push都要输入密码,使用git协议,使用ssh秘钥,可以省去每次输密码 大概需要三个步骤:一.本地生成密钥对:二.设置github上的公钥:三.修改git的r ...
- ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha
ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算 ...
随机推荐
- Django序列化组件Serializers详解
本文主要系统性的讲解django rest framwork 序列化组件的使用,基本看完可以解决工作中序列化90%的问题,写作参考官方文档https://www.django-rest-framewo ...
- 超详细windows安装mongo数据库、注册为服务并添加环境变量
1.官网下载zip安装包 官网地址https://www.mongodb.com/download-center/community?jmp=nav,现在windows系统一般都是64位的,选好版本. ...
- Android复习准备
1. 四大组件是什么? Activity(活动):用于表现功能 Service(服务):后台运行服务,不提供界面呈现 BroadcastReceiver(广播接收器):用来接收广播 ContentPr ...
- Redis之NoSql入门和概述(一)
1. 为什么用 NoSQL? NoSQL指的是非关系型的数据库,NoSQL也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.NoSQL用于超大规模数据的存储.这 ...
- 数据结构C语言实现----直接插入排序
直接插入排序(简单插入排序) 给定一个数字串:2 6 7 8 9 3 2 3 4 按从小到大的顺序排列输出 首先把第一个数字放到一个小组里:(2)6 7 8 9 3 2 3 4 让后从第二个数字开始往 ...
- C/C++编程笔记:C语言进制详解,二进制、八进制和十六进制!
我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1.9.10.297.952 等,一个数字最多能表示九,如果要表示十.十一.二十九.一百等,就需要多个数字组合起来. 例如表示 5+8 的结果 ...
- [转] SpringBoot返回json 数据以及数据封装
作者:武哥 来源:武哥聊编程 https://mp.weixin.qq.com/s/QZk0sKxBX4QZiCTHQIA6pg 1. Spring Boot关于Json的知识点 在项目开 ...
- Sharding-JDBC实现读写分离
参考资料:猿天地 https://mp.weixin.qq.com/s/kp2lJHpTMz4bDWkJYjVbOQ 作者:尹吉欢 技术选型:SpringBoot + Sharding-JDBC ...
- Linux进程间通信之《共享内存》入门
目录 简述 代码 写端代码 读取端代码 编译 运行 简述 共享内存是Linux系统进程间通信常用的方式,通常用于数据量较大的情况,如果只是用于不同的进程间消息通知,那不如用消息队列或者socket.之 ...
- Springboot Xss注入过滤
1.编写 XssHttpServletRequestWrapper import javax.servlet.http.HttpServletRequest; import javax.servle ...