Preface

At the first time, we take the connection with GitLab remote server. You need to type username and password as your individual credentials to login the server, since the connection between the client(your computer) and remote server(Git sever in a Linux machine) is built up SSH protocol. But every programmer want things to be simple next time, in order to reach the target, the SSH key is introduced to help us for login without manual authentication.

Begin you start…

if you have already know a little about Git, or you are being trained to know how to use Git for PLM. Perhaps the document can help you, Trust me, if you don’t know any context. The documentary will be boring and useless. actually, there is another choice of connection to GitLab remote server, you will also know it at the subsequent section.

Steps for deploying SSH keys

Note: the steps have already describe in your GitLab server, if you want to know more, click the reference http://10.8.0.68/help/ssh/README   . if you couldn’t access to the link ,the  document will tell you directly at subsequent section, the following steps can help you to know how to finish the job completely, even better.

1.     Locating an existing SSH key

Because there is possible that your machine had already been used by other developers and generated the SSH key when they configured their Git environment. So that, Before generating a new SSH key check if your system already has one at the default location by opening a Shell(Git Bash), or Command Prompt on Windows(CMD), and running the following command:

a)       Windows Command Prompt:

type %userprofile%\.ssh\id_rsa.pub

b)      Git Bash on Windows :

cat ~/.ssh/id_rsa.pub

If you see a string starting with ssh-rsa you already have an SSH key (this case will appear like above), but the key probably is not mapped to your identity. You have to know real place where your SSH key actually is located in. and to remove this files beneath the directory, and generate  new SSH key in accordance to your credential. the path is like the following pattern.

C:\Users\DanielDai\.ssh

the three important file are described below, if you are not interested in the concrete explanation, please ignore it.

         id_rsa:

The file contains private key for encryption in client terminal, when you login GitLab remote server through SSH protocol, private key is used to encrypt your username and Password(if there is).

Id_rsa.pub:

The file contains public key for decryption in server terminal, when server receive the your credential which have been encrypted via private key. And the server decrypt the information and check if this person’s login information is correct.

         Known_hosts:

GitLab remote server address and public key of GitLab server are stored in this file. the file content is used to decrypt information from remote server.

2.     Generating an SSH key

To Generate a new SSH key, you can do it through the following instructive commands.

a)       Git Bash on Windows:

ssh-keygen -t rsa -C "your.email@example.com" -b 4096

you will be noticed as the following prompt.

I suggest you press “enter” key without other thought if you configure your Git environment initially. Because using the suggested path will normally allow your SSH client to automatically use the SSH key without any additionally configuration. In other words, you don’t need to configure .git/config in local source repository. If you don’t know what .git/config is, referring toUse on Git. Of course, you have other choices for your customized requirement, but here is not going to introduce that alternative in details.

b)      Input a password

Once you input a file path, you will be prompted to input a password for security of your SSH key, although safety will be promised , I don’t recommend you to input password. It will be more simple and faster.

c)       Duplicate the public SSH key as somewhere need it afterwards

To copy the content, you can use the following commands to do that. Of course, opening up id_rsa.pub and then getting a duplication are more visual.

Git Bash on Windows:

cat ~/.ssh/id_rsa.pub | clip

3.     setting up an SSH key

return back GitLab management Page,navigate to the “SSH Keys” tab in your ‘Settings’.Paste your key in the ‘Key’ section and give it a relevant and identifiable ‘Title’.

Understanding of SSH and SSH key

Description: the section is about to conclude the fundamentals about SSH key. what is SSH protocol, what is SSH key, why the connection between Git client and GitLab remote server need the mechanical security system, and how does the security system work in our Git . If you are familiar with the knowledge, you don’t have to look through the chapter.

SSH protocol

Background

Over many years, intercommunication between computer terminals was based on plaintext.it caused too much securable risks that message is easy to be intercepted and captured. SSH protocol targets to resolve the risky issue. The transmission of information between multiple terminals will be encrypted and decrypted via SSH protocol. The material of encryption and decryption is SSH key, more information about SSH key is introduced in subsequent section.

Usage

SSH is typically used to log into a remote machine and process some tasks remotely. There are some helpful tools for that, such as putty, mremoteNG etc. of course, the Git bash is inclusive. we use SSH client to connect remote server to avoid using the Linux server on-site, and Git Lab remote server is belonging to Linux sever too.

SSH Key

         Background

Actually, we should name it SSH key pairs or (SSH public key and SSH private key).Because SSH protocol is built up on Public and private key encryption mechanism.

         Public and private key encryption mechanism

If there is an encrypted connection between two standalone entities, then, message that is encrypted by an entity’s private key require to be decrypted via this entity’s public key. so before establishment of network connection, another entity need know this entity’s public key.

So entity should generate a public key and a private key meanwhile using it’s key generation program.

the following pic could demonstrate the system well.

How does the security system work in our Git

As principle which is described above. So firstly, the GitLab remote server needs to save the client’s public key for decrypting user’s credentials from client. That is why we need to configure SSH key before.

For all files beneath the directory(C:\Users\DanielDai\.ssh) indicated at previous chapter. If you didn’t get completely understanding of that instruction, I advise you should review it again.

No matter what messages that are from Git client or Git Server will be transfer to each other based on SSH channel, so that, not only we need to deploy the SSH public key of Git Client to Git Server, but we also need to save the SSH public key of Git Server when Git client try to connect to an new server address at the first time.

Here is a good example, I think it can demonstrate the what the functional of the file (known_hosts) is.

The email from GiorGio tell us the change of GitLab remote Server Address, we need to replace the old address with new one.

After configure it already, the Git client will meet the following noticeable prompt when client try to connect to new address at the first time. If your response is ‘yes’, known_hosts file will save a new server address and the ssh public key from the sever.

 

Alternatives Of Connection To GitLab Remote Server

If you only know how to follow all steps to deploy the SSH key, of course, that is enough for development of Luxottica PLM. But , actually, there is another alternatives to connect to GitLab Remote Sever generally.  You can do the same things through “HTTPS/HTTP” channel.

The following screenshots shows how you can choose it.

If you choose the alternative, you don’t have to generate SSH key pairs and to deploy SSH public key to GitLab Server.

SSH key introduction的更多相关文章

  1. git生成公钥public key并添加SSH key。git乌龟gerrit下推送git【server sent :publickey】

    一.key 码云链接:http://git.mydoc.io/?t=180845#text_180845 博客链接: 方式一:https://blog.csdn.net/xb12369/article ...

  2. 创建SSH Key连接github或gitlab

    mac下用SoureceTree下载github或gitlab上的项目时,需要进行ssh key验证.每次重装系统啥的都要重新弄,我在csdn上看到一篇不错的文章.转载一下,以后自己找起来也方便. 地 ...

  3. ssh key生成

    Mac电脑用终端生成SSH key 访问自己的Github 字数684 阅读427 评论4 喜欢15 前言:最近有不少刚刚使用github管理代码的开发者或者新手码农在网上 问我如何关联自己的gith ...

  4. windows系统如何添加ssh key到github

    我自己的电脑安装了git后,从来没有用过,今天偶然用了一次,发现不能pull到东西,报错说我没有权限,于是我网上搜索了一下,应该是我没有配置ssh key的原因,相信很多人都有和我一样的经历吧,这里呢 ...

  5. github with msysgit:配置SSH Key

    Step 1: Check for SSH keys First, we need to check for existing ssh keys on your computer. Open up G ...

  6. 添加ssh key

    我现在根据<github入门和实践>来去摸索github 其实,我发现自己在看github时,感觉不适应,是因为自己太久没有碰到英文了.可以联想到以前当看到一个网页,根据汉字的标题或描述, ...

  7. github 添加 SSH key

    在 github 上添加 SSH key 的步骤: 1.首先需要检查你电脑是否已经有 SSH key 运行 git Bash 客户端,输入如下代码: $ cd ~/.ssh $ ls 这两个命令就是检 ...

  8. 使用ssh key的方式建立和git服务器的通信

    1.以前大家好像都在用https的方式同git来同步代码,但是到了新公司后,主管说要配ssh key,所以大概了解一下 An SSH key allows you to establish a sec ...

  9. Git bash 配置ssh key

    问题描述 昨天为了配置Qt create中的Git,把我一直在使用的Github删除了,今本以为,这样git的一些配置还在,可是,今天上传一些提交的时候,提示我,git没有密钥.梳理一下,这个简单的配 ...

随机推荐

  1. 如何在MicroPython TPYBoard 添加自定义类库

    开始之前,首先要感谢一下TPYBoard技术交流群(157816561)-云之初晓网友的分享.   今天简单分享下如何将自己编写的一些Python脚本的类库添加到固件中,在使用时只需import调用, ...

  2. MySQL优化-》执行计划和常见索引

    MySql的explain执行计划 explain是一个Mysql性能显示的工具,它显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句.在开发当 ...

  3. HTTP首部解析

    HTTP首部解析 转载请注明出处:HTTP首部解析 文章目录 1.与HTTP协议相关的Web服务器 2.HTTP首部 与HTTP协议相关的Web服务器 在说明HTTP首部相关知识之前,有必要先了解一下 ...

  4. 多工程联编,cocopods的使用

    最近在使用coco2d-x, 想要使用 cocopods,发现我的目录结构如下图 发现我有三个工程文件,  那么 就需要多工程联编使用cocopods, workspace 'xcworkspace' ...

  5. 软件安装之-------VM虚拟机安装windows系统

    一 准备工作 1 电脑已经安装上VMware Workstation 2 一个Windows系统,下载纯净版系统可到(www.itellyou.cn下载) 3  软碟通 下载可到(http://dow ...

  6. python文件处理相关函数

    用open()创建文件 open('a.txt','wt') 用exists()检查文件是否存在 os.path.exists() 用isfile()检查是否为文件 os.path.isfile(na ...

  7. React Native学习(一)——搭建开发环境

    第一次接触React Native,首先搭建环境,过程还算顺利,不过也遇到了些问题,这里简单记录下来.中文官网(http://reactnative.cn/docs/0.47/getting-star ...

  8. Java与算法之(10) - 希尔排序

    希尔排序是插入排序的一种,是直接插入排序的改进版本. 对于上节介绍的直接插入排序法,如果数据原来就已经按要求的顺序排列,则在排序过程中不需要进行数据移动操作,即可得到有序数列.但是,如果最初的数据是按 ...

  9. 运用C语言将图片转换成16进制的字符串(base64)

    最近在写手机端的性能测试脚本的时候,发现手机在上传图片数据时,先将图片转换成一堆16进制的字符,将字符传输过去,服务器再将字符解码成图片 我们在loadrunner中测试时,就需要用C语言将图片编码. ...

  10. List集合及新特性引用

    ArrayList就是动态数组,也是一个对象. 创建一个ArrayList对象,该对象存放在堆内存中,且是一个内存连续的内存区域. 1.ArrayList是用数组实现的,这个数组的内存是连续的,不存在 ...