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开发板DIY小型家庭气象站

    众所周知,iPhone6/6Plus内置气压传感器,不过大家对于气压传感器还是很陌生.跟字面的意思一样,气压传感器就是用来测量气压的,但测量气压对于普通的手机用户来说又有什么作用呢? 海拔高度测量 对 ...

  2. 第一章 Linux系统概述

    linux是真正的多用户.多任务操作系统,他继承了UNIX系统的主要特征,具有强大的信息处理功能,特别在Internet和Intranet的应用中占有明显优势. 1.1计算机基础知识 计算机分为硬件和 ...

  3. MVC异步加载学习笔记

    一.普通的异步请求 1.View层 <input type="text" id="Name" value="" placeholder ...

  4. windows系统安装securtCRT

    说明:securtCRT可以ssh liunx主机,或者网络设备,如路由器,交换机,防火墙等设备,很多新手不会安装,因为正版要钱啊,对于小老百姓,还是用破解的吧 不说废话,开始搞起来. 软件下载链接: ...

  5. Coursera课程 Programming Languages 总结

    课程 Programming Languages, Part A Programming Languages, Part B Programming Languages, Part C CSE341: ...

  6. 【转】Nginx SSL_PROTOCOL_ERROR 问题

    转自:https://maoxian.de/2017/12/1471.html 这两天在检查一台 Nginx 配置的时候,遇到了一个极端诡异的问题.一段很通用的配置,配在这个服务器上,就会 100% ...

  7. 【JavaScript函数】

    函数的定义 : [完成某一个功能的代码段] 1.方便维护 2.重复利用 3.执行代码段 函数的一些要求: function 定义某一个函数 命名最好要有语义化, 函数名称最好是驼峰, 严格区分大小写, ...

  8. python抢火车票的脚本

    起因: 想着那么多人,抢不到火车票.感觉到一丝感慨 所以有了抢火车票这个脚本. 0x01 思路:自动打开浏览器,自动输入账号密码 知道查看.自动预定. 0x02 要用到的模块 splinter模块: ...

  9. Timus Online Judge:ural:1006. Square Frames

    原题链接:http://acm.timus.ru/problem.aspx?space=1&num=1006 看到题第一反应:这玩意怎么读入…… 本地的话因为是全角字符,会占两个位置,所以需要 ...

  10. HDU 1019 Least Common Multiple【gcd+lcm+水+多个数的lcm】

    Least Common Multiple Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...