背景:服务器是LINUX系统(centos7),使用GitLab管理git代码库。各个客户端通过sourcetree 工具,采用SSH获取、提交代码。使用SSH的方式需要公钥和私钥。下面介绍秘钥的生成方式和秘钥在sourcetree、gitlab上的配置。

===================================================================秘钥的生成方式========================================================

方法一、Git GUI生成 ssh key 方法

1.打开Git Gui, 选择【help】,点击【Show SSH KEY】

2.由于之前没有配置过SSH KEY,此时会显示没有任何SSH 公钥

3.点击右上角【Generate key】,此时会弹出一个界面,要求你输入passphrase

4.然后再次确认输入passpahrase .

5.此时就会生成一个SSH Key

6.如果以后需要查看SSH Key。此时可以在Git Gui界面上点击【help】-》【Show SSH KEY】,查看此次生成的SSH Key。

方法二、git命令添加 ssh key 方法

1、打开Git Bash

  • $ ssh-keygen -t rsa -C “xxx.mail@xxx.com” 创建秘钥命令。

==============================================================秘钥在sourcetree和gitlab如何配置===============================================

2.设置 SourceTree 的 SSH客户端

  • 1.配置SourceTree 的 SSH 客户的为:OpenSSH

    • 1.1.工具->选项 
    • 1.2.设置 OpenSSH,这时候,SSH 密钥这一栏自然会去选择当前用户下的 .ssh 目录下的 id_rsa 这个私钥: 

2.添加 ~/.ssh/id_rsa.pub 文件内容到 git 服务器里面去

  • 3.1.比如你的 git 代码库管理工具是 GitLab,那么你需要在 https://github.com/settings/keys (如果公司代码放在了自己的服务器上,那么地址会不同,以公司为准)里面添加 SSH key 。
  • 3.2.SourceTree 来下载 git 项目

    • 3.2.1.复制你的 git 地址:git@XXXXX.git
    • 3.2.2.从 SourceTree 里面新建一个地址,这时候你发现你本地已经可以下载远程的 git 代码了

4.解释:

1.ssh-keygen 是公钥私钥的非对称加密方式:

  1.1.公钥:用于向外发布,任何人都能获取。

  1.2.私钥:要自己保存。

2.公钥私钥加解密的原理

  2.1.客户端把自己的公钥存放到要链接的远程主机上

  • 2.2.客户端要链接远程主机的时候,远程主机会向客户的发送一条随机的字符串,客户的收到字符串之后使用自己的私钥对字符串加密然后发送到远程主机,远程主机根据自己存放的公钥对这个字符串进行解密,如果解密成功证明客户端是可信的。

Git 生成SSH Key的更多相关文章

  1. git生成ssh key及本地解决多个ssh key的问题

    git生成ssh key及本地解决多个ssh key的问题 ssh是一种网络协议,用于计算机之间的加密登录.ssh原理及应用可参考: SSH原理与运用(一):远程登录 生成ssh key步骤 这里以配 ...

  2. Git - 生成ssh key步骤以及如何clone所有的远程分支

    https://www.cnblogs.com/gongyuhonglou/p/6922721.html 2. 生成ssh key $ ssh-keygen -t rsa -C “邮箱”按3个回车,密 ...

  3. git生成ssh key和多账号支持

    git配置ssh 1.首先设置git的全局user name和email $ git config --global user.name "ygtzz"$ git config - ...

  4. Git - 生成 ssh key for Mac

    终端: cd ~/ .ssh 生成 SSH KEY ssh-keygen -t rsa -C 你的油箱 前往以下目录找到生成好的 SSH KEY /Users/wzz/.ssh/id_rsa.pub

  5. git生成ssh key步骤并添加到github网站

    0: 查看是否已经有了ssh密钥 执行命令:cd ~/.ssh 如果没有密钥则不会有此文件夹,有则备份删除 1:使用 Git Bash生成新的ssh key ssh-keygen -t rsa -C  ...

  6. ubuntu git生成ssh key (公钥私钥)配置github或者码云

    Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...

  7. git生成ssh key 避免每次push都要输入账号密码

    第一步:生成public/private rsa key pair在命令行中输入ssh-keygen -t rsa -C "your_email@example.com" 默认在这 ...

  8. git生成SSH key

    使用https:// 提交GitHub上的私有项目时,需要每次都输入帐号和密码,比较麻烦. 比如我自己的笔记本,在push的时候我可不想每次都输入这些. 那就使用SSH吧,这个需要在GitHub的帐号 ...

  9. GIT生成 SSH Key步骤

    //设置user.name和email 提交到git之后会显示用户名(在随意一个目录打开git-bash执行就行)Administrator@DESKTOP-BP3H0HS MINGW64 /d/mi ...

随机推荐

  1. Bootstrap 字体与图标

    常用网站:icons/Font awesome/bookstrap 控制图标的大小使用 fa-lg (33%递增).fa-2x. fa-3x.fa-4x,或者 fa-5x 类 来放大图标.旋转动画 & ...

  2. CentOS 6下安装Python2.7

    安装方法 如果在CentOS上自己编译安装过python2.7,使用过程中会发现有些标准库没有安装之类的问题. 逛别人博客的时候发现,一个便捷的方法:使用RHSCL的全称是Red Hat Softwa ...

  3. 从0打卡leetcode之day 3 -- 最大子序列和

    前言 就有要把leetcode的题刷完,每天一道题,每天进步一点点 从零打卡leetcode之day 3 题目描述: 给定一个int类型的数组,求最大子序列的和. 也就是说,从这个数组中截取一个子数组 ...

  4. java中变量的存储位置

    1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符 ...

  5. JS输入框去除负号(限定输入正数)

    onkeyup="(this.v=function(){this.value=this.value.replace(/\-/g,\'\');}).call(this)" 示例: & ...

  6. .NET: 使用.NET Core CLI开发应用程序

    要开发.NET Core应用程序,除了使用强大的Visual Studio之外,还可以使用.NET Core CLI..NET Core CLI (Command-Line Interface),也就 ...

  7. Android开发过程中的坑及解决方法收录(六)

    1. file.listFiles 空指针异常 最近在弄个小项目,类似一个文件管理器,需要获得手机存储里的目录之后显示,但是运行过程中出现错误,搜索了资料,得出了以下的解决办法 问题产生的原因: an ...

  8. C++系列总结——new和delete

    前言 "new和malloc()有什么区别",这是一个很常见的C++面试题.我的回答是"new等于malloc()后再选择性执行构造函数".执行流程上是这样的, ...

  9. Yii2基本概念之——配置(Configurations)

    在Yii中创建新对象或者初始化已经存在的对象广泛的使用配置,配置通常包含被创建对象的类名和一组将要赋值给对象的属性的初始值,这里的属性是Yii2的属性.还可以在对象的事件上绑定事件处理器,或者将行为附 ...

  10. 利用scrollintoview方法模拟聊天室收到新消息

    这段时间再写一个聊天的功能,基本的原理已经通了,剩下的就是细化功能和实现了.原理通了不代表就能解决了这个问题,今天就遇到了一个小问题,就是在接收到新的消息以后,最新的消息不能显示在消息区域,而是跑到了 ...