SSH 证书生成(Linux、Windows)

SSH 证书生成(Linux、Windows)目录.png

一、介绍SSH证书:

1.首先什么是SSH

Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。通过加密保证了数据的保密性和完整性。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。

2.SSH的好处

1、传统的FTP、Telnet是再网络中明文传送数据、用户帐号和密码,很容易受到中间人攻击。而通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了, 而且也能够防止DNS和IP欺骗。
2、第二个好处是:传输的数据是经过压缩的,所以可以加快传输的速度。

3.怎么实现SSH的好处呢?【怎么才能做到加密】

SSH利用SSH Key来进行前面提到的基于密钥的安全验证。

4.SSH-Key是什么?

1、SSH-Key 就是一对密钥对。【一个是公钥,一个是私钥】
2、公钥是给别人用的。私钥是给自己用的。
3、别人是谁?可以是GitLab服务器。
自己是谁?可以是本地。

4、举个例子
4.1》本地想要使用git从gitHub/gitlab上拉取代码。
4.2》给GitHub/GitLab配置公钥,公钥就可以作为一个加密的箱子,将代码放在箱子里。
4.3》被本地拉取到后,使用私钥将加密的箱子打开。就能拿到代码了。
4.4》整个过程中,都没有用户名/密码在网络中传输,所以不会给他人拦截到,破解你的数据

5、所以,SSH-Key的直观作用,就是【让你方便的登录到 SSH 服务器,而无需输入密码】

5.SSH-Key的密钥类型

有RSA和DSA两种认证密钥

6.目录.ssh下的文件说明

id_rsa :存放私钥的文件

id_rsa.pub :存放公钥的文件

known_hsots :可以保存多个公钥文件,每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts文件中

authorized_keys :A机器生成的公钥-->放B的机器.ssh下authorized_keys文件里,A就能免密访问B,但是B不能访问A。如果需要两台电脑互相访问均免密码。则需要重复上面的步骤(机器的配置刚好相反)

二、Linux生成ssh证书

1、开启ssh和查看是ssh否开启

[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

2、查看是否有生成的证书

[root@VM_0_6_centos .ssh]# cd  /root/.ssh
[root@VM_0_6_centos .ssh]# ls
[root@VM_0_6_centos .ssh]#

3、生成证书 ssh-keygen -t rsa

邮箱可以不是真实的。

[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]#

3、证书使用

可以配置gitlab、github、其它机器上等。

例如:配置gitlab

获取公钥(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

复制公钥:id_rsa.pub 内容-->配置gitlab

登录gitlab点击头像-->settings-->SHH Keys

gitlab配置shh.png

4、测试使用

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上的项目
git ssh地址.png

是否能下载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

成功!

三、windows生成证书

首先安装git
安装git参考地址
安装git参考地址2 这个精简

1、查看是否有生成的证书

默认位置:C:\Users\Administrator.ssh
在Windows下查看[c盘->用户->自己的用户名->.ssh]下是否有"id_rsa、id_rsa.pub"文件,这两个就是证书文件默认名称。

2、生成证书 ssh-keygen -t rsa

安装好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]-----+

3、查看是否生成证书文件

win证书ssh.png

4、使用ssh证书

可以配置gitlab、github、其它机器上等。

例如:配置gitlab

获取公钥(打开id_rsa.pub文件)内容

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMXYx0+V6xndjSdHpwOWqtqwQ2Wn95mFemNZuuKcILnqPP/bVJm3RKKmCu7jUqM2YgQOSEOAwdvKHTfKKFVLMXHvbKY63TdlrhvGZSXmsZPRVi3pxz2bZC+Wuxv3feVKypCWuHZBNjrmVylaDA7XcFwFrqH367621O/DIad1QgysXqX1ZhkL9SSlKVSowgyWcNvO3vXRkomg5oxiRCxhcuMsiN+WhJPuynNCMqPSIb/xNmX8lvXB2wTVqEnnlwsy849Mduv6g1I2OipOTUyDcEj8G+Tl4c44bYJKlyYxo7eF0MhZgAVpFBlcU+s/CpZfa4VdoOMehNr8NTUqxYbsmT zhengja@dist.com

复制公钥:id_rsa.pub 内容-->配置gitlab

登录gitlab点击头像-->settings-->SHH Keys

gitlab配置shh.png

5、测试shh证书使用
git ssh地址.png

找的空文件夹-->右击 空白处-->进入 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节点机器 等等......

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容