Secure Shell (SSH) 是一个容许两台电脑之间经过安全的链接进行数据交换的网络协议。经过加密保证了数据的保密性和完整性。SSH采用公钥加密技术来验证远程主机,以及(必要时)容许远程主机验证用户。html
一、传统的FTP、Telnet是再网络中明文传送数据、用户账号和密码,很容易受到中间人攻击。而经过使用SSH,你能够把全部传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了, 并且也可以防止DNS和IP欺骗。 二、第二个好处是:传输的数据是通过压缩的,因此能够加快传输的速度。git
SSH利用SSH Key来进行前面提到的基于密钥的安全验证。github
一、SSH-Key 就是一对密钥对。【一个是公钥,一个是私钥】 二、公钥是给别人用的。私钥是给本身用的。 三、别人是谁?能够是GitLab服务器。 本身是谁?能够是本地。spring
四、举个例子 4.1》本地想要使用git从gitHub/gitlab上拉取代码。 4.2》给GitHub/GitLab配置公钥,公钥就能够做为一个加密的箱子,将代码放在箱子里。 4.3》被本地拉取到后,使用私钥将加密的箱子打开。就能拿到代码了。 4.4》整个过程当中,都没有用户名/密码在网络中传输,因此不会给他人拦截到,破解你的数据shell
五、因此,SSH-Key的直观做用,就是【让你方便的登陆到 SSH 服务器,而无需输入密码】vim
有RSA和DSA两种认证密钥windows
id_rsa :存放私钥的文件centos
id_rsa.pub :存放公钥的文件安全
known_hsots :能够保存多个公钥文件,每一个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts文件中springboot
authorized_keys :A机器生成的公钥-->放B的机器.ssh下authorized_keys文件里,A就能免密访问B,可是B不能访问A。若是须要两台电脑互相访问均免密码。则须要重复上面的步骤(机器的配置恰好相反)。
[root@VM_0_6_centos ~]# netstat -anp|grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:*
tcp 0 36 172.16.0.6:22 211.161.248.60:22447
[root@VM_0_6_centos ~]# service sshd start
Redirecting to /bin/systemctl start sshd.service
复制代码
[root@VM_0_6_centos .ssh]# cd /root/.ssh
[root@VM_0_6_centos .ssh]# ls
[root@VM_0_6_centos .ssh]#
复制代码
邮箱能够不是真实的。
[root@VM_0_6_centos .ssh]# ssh-keygen -t rsa -C "zhengja@dist.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ANbGYlsumXjZ3GzsgkCen80YNwl5Y1/U4zGgDcgaVIA zhengja@dist.com The key's randomart image is: +---[RSA 2048]----+ | o=B....oo | | E.*.@ +. = | | o + ^.B.... + | | = X B.* . | | + X +S | | = + . | | . | | | | | +----[SHA256]-----+ [root@VM_0_6_centos .ssh]# ls id_rsa id_rsa.pub [root@VM_0_6_centos .ssh]# 复制代码
能够配置gitlab、github、其它机器上等。
获取公钥(id_rsa.pub)内容
[root@VM_0_6_centos .ssh]# vim id_rsa.pub
复制代码
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMXYx0+V6xndjSdHpwOWqtqwQ2Wn95mFemNZuuKcILnqPP/bVJm3RKKmCu7jUqM2YgQOSEOAwdvKHTfKKFVLMXHvbKY63TdlrhvGZSXmsZPRVi3pxz2bZC+Wuxv3feVKypCWuHZBNjrmVylaDA7XcFwFrqH367621O/DIad1QgysXqX1ZhkL9SSlKVSowgyWcNvO3vXRkomg5oxiRCxhcuMsiN+WhJPuynNCMqPSIb/xNmX8lvXB2wTVqEnnlwsy849Mduv6g1I2OipOTUyDcEj8G+Tl4c44bYJKlyYxo7eF0MhZgAVpFBlcU+s/CpZfa4VdoOMehNr8NTUqxYbsmT zhengja@dist.com
Linux安装git
[root@VM_0_6_centos local]# yum install git
[root@VM_0_6_centos local]# git --version
git version 1.8.3.1
复制代码
配置git: email要和上名的配置一致(email能够不是真实的)
[root@VM_0_6_centos ~]# git config --global user.name "zhengja"
[root@VM_0_6_centos ~]# git config --global user.email "zhengja@dist.com"
复制代码
随便找个本身gitlab上的项目
是否能下载gitlab项目
[root@VM_0_6_centos ~]# git clone ssh://git@elbgit-1200450932.cn-northwest-1.elb.amazonaws.com.cn:5337/zhengja/springboot-test-gitlab.git
Cloning into 'springboot-test-gitlab'...
The authenticity of host '[elbgit-1200450932.cn-northwest-1.elb.amazonaws.com.cn]:5337 ([52.83.120.124]:5337)' can't be established.
ECDSA key fingerprint is SHA256:cb3sC2zG1MwV8pkEZzfNzQ1V+3PZaEEc2UEdkHsdq2c.
ECDSA key fingerprint is MD5:be:bd:1d:07:f9:5e:27:25:6e:b5:af:e6:61:15:f8:d0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[elbgit-1200450932.cn-northwest-1.elb.amazonaws.com.cn]:5337,[52.83.120.124]:5337' (ECDSA) to the list of known hosts. remote: Counting objects: 22, done. remote: Compressing objects: 100% (13/13), done. remote: Total 22 (delta 0), reused 0 (delta 0) Receiving objects: 100% (22/22), done. [root@VM_0_6_centos ~]# ls springboot-test-gitlab 复制代码
成功!
首先安装git
默认位置:C:\Users\Administrator.ssh
在Windows下查看**[c盘->用户->本身的用户名->.ssh]*下是否有"id_rsa、id_rsa.pub"*文件,这两个就是证书文件默认名称。
安装好git后:
右击 空白处-->进入 Git Bash Here :邮箱能够不是真实的
$ ssh-keygen -t rsa -C "zhengja@dist.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:WDXfBdxE5au0AE0hCIE8u6aaqbQJIS883mBMNs4zm4k zhengja@dist.com The key's randomart image is: +---[RSA 2048]----+ | . .oo ..oo...=*| | + . .+o ..o.| | o .. .. . .| | . o . .| |o+ . . S . . . | |Oo.o o o | |o%+ o | |*=% | |EB . | +----[SHA256]-----+ 复制代码
能够配置gitlab、github、其它机器上等。
获取公钥(打开id_rsa.pub文件)内容
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMXYx0+V6xndjSdHpwOWqtqwQ2Wn95mFemNZuuKcILnqPP/bVJm3RKKmCu7jUqM2YgQOSEOAwdvKHTfKKFVLMXHvbKY63TdlrhvGZSXmsZPRVi3pxz2bZC+Wuxv3feVKypCWuHZBNjrmVylaDA7XcFwFrqH367621O/DIad1QgysXqX1ZhkL9SSlKVSowgyWcNvO3vXRkomg5oxiRCxhcuMsiN+WhJPuynNCMqPSIb/xNmX8lvXB2wTVqEnnlwsy849Mduv6g1I2OipOTUyDcEj8G+Tl4c44bYJKlyYxo7eF0MhZgAVpFBlcU+s/CpZfa4VdoOMehNr8NTUqxYbsmT zhengja@dist.com
找的空文件夹-->右击 空白处-->进入 Git Bash Here
Administrator@ZhengJiaAo MINGW64 /d/FileTest/Testgitlab
$ git clone ssh://git@elbgit-1200450932.cn-northwest-1.elb.amazonaws.com.cn:5337/zhengja/springboot-test-gitlab.git
Cloning into 'springboot-test-gitlab'...
remote: Counting objects: 22, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 22 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (22/22), done.
复制代码
成功!
例如:
windows经过Xshell 以ssh方式链接 Linux系统
Linux 以ssh链接另外一台Linux系统
git使用ssh免密链接gitlab、github等下载项目
jenkins配置ssh链接slave节点机器 等等......