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.在linux上生成SSH-Key的命令步骤

1》首先,你得在root目录下

cd /root

2》查看是否已经存在SSH-Key【其实就是查看.ssh这个隐藏目录是否存在】

ls -al ~/.ssh

如果没有就新建,如果有,建议删除再新建

删除命令【其实就是删除.ssh这个隐藏目录目录】

rm -rf .ssh
3》新生成SSH-key【替换成你自己的邮箱】

ssh-keygen -t rsa -C "sxd4business@qq.com"

键入命令后,会让你输入密码用来保护你的密钥等,总共三次需要输入的,你都直接三次回车就好!!

【关键是,设置了你自己以后忘了就得重新生成】

【-C 是给你的密钥设置注释,你不想设置为邮箱,设置成别的也行】

4》生成后,会在/root目录下,也就是当前用户的目录下,生成一个.ssh隐藏目录,目录中会有【id_rsa】和【id_rsa.pub】两个文件,一个是私钥,一个是公钥。你现在就可以复制使用了

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA36h8i3yc5glv7kURRNkkdrYYOkeDcUHF4PSi64ZL2DMGmu2/
mzHF3CDfISAZUFp3cTd0yqRIF7LAfmlQrbDmFDk+jwMELoeVurUa8yaCVyz0pqfR
44ZYeEBToz53GEJ9k8n2nfOPBSqxhjblRxJgCKv7PIPqEI53h7laBKagyZ6bN2qm
yMcEjQmQzId4Ub7pweEhLH6FyKCx/upF7DxfJe2EyzAZJfLzfkb7lz1roLlDRngc
Gmb+aPmam3lIQHDrFLzbwCCox638Xg1/6gpw4yIFYsZqSOUgfjbKO1j03JLEMtzA
PPrH+eFq83IO0wkgVd+1FxIGLj5KVG/ygftqcQIDAQABAoIBAAPqE/vw+2H/Skk2
Rj4ZOs0lFLl4ZPGHgCoWvf83Q36OLhBqFs9liJv4q08OG8NPQgXmPZIKXASmKT5N
I49WqEA0XEbue5VA5Dr3Tnhw9RkHfWSpTUAZKtU38v7JahYvm7kJcNqE17z0aVT7
AvpCdRHRyLzfZipSA/+JG+026Vt99b70wD4B8SO0wpXj0Jr3VmP0tAAbdtecZ3mv
EQIVr4W+7D6O+o625ZiG+rU1nhuqQCN17YCvbOc48LkxLJADzqccUiUmm7nNSo6a
YAWPClFEexLGdNkU6Xb90/ujxdGDYWwvVC0bS8tTstPbIYQZm4J2KsfceiPYThw2
wd59740CgYEA/vhI7+2hXUHbHFbPuSvNIBVHpMKH7/U7Quj7aZkKR2Sx6bkOKdzR
NPb7wVLZkZ3CxsuQLror/Ws4ZKLgdfmvbdrfA4gxZ7Te35egQnyYVIs1KyqzH27F
bkQ9fbmty8kZ5G3Rmgmi/4wkBybtgvpmH+5rQx8Oz5/uYmNV5Qh2PG8CgYEA4I/Q
3/ohKCdFJ8KhGAbvB6fkQ8QHVfn0CJ8TFhkC3S64XyXyXoDUASr81coCPw3RtB59
eS4HUL++GSZfvUEX8DANU8LQezwYdkxbPsgMI9z99kiySdbUW9+EIRpivozX97+E
7k4+XH0HrY0kC3W8TyzT6rVxsT0xyQaOw1HV9x8CgYEAgkW/ln82vFxipHciiTz9
AJB+24rdQ9hroANEOa8NFm83i/CWcQM3DTXIaf131rPhigsGLynGQiQfWyPxRbX+
UUXMPpS+kXtTiLCDHJVmi4PY9aZKgRvq2i0ZsfxF9WJZzWHi/y4/Twx+d/0Gy64+
sb/ypAfhXGodtb2FbJFHQBcCgYEAhEFvXVptiL6IJkCkrAf5Y2LoN1kOkP5jUWiO
zybv3uCTScaJlkr9kaqFukv9QrGa3iBO+b24JUCobxuAq2/Y72b9kmVccBgWuCWE
X9dl/wE6uYBbMM3LyEg+A1kM6vj8gTdUzR1b8RDaIsbLgcxXmbHnJYazbRWDasfn
8PUTtTUCgYEAvaGGJN3rakj8jkDDf1egeuRStJ+jfRVMm9NAqa+ELjDKW3fORCYE
wIlGveGn5S3trx28RBQY1DZxFsF0YlD2hkxH70AFEOYrE/mTqqPeZZdfLsb9yF8E
kKJBRhG94YGRSBHu2h6SnnfHoJV3yyk0LrPqyyC97A7lSqLN8fRaGm8=
-----END RSA PRIVATE KEY-----

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfqHyLfJzmCW/uRRFE2SR2thg6R4NxQcXg9KLrhkvYMwaa7b+bMcXcIN8hIBlQWndxN3TKpEgXssB+aVCtsOYUOT6PAwQuh5W6tRrzJoJXLPSmp9Hjhlh4QFOjPncYQn2Tyfad848FKrGGNuVHEmAIq/s8g+oQjneHuVoEpqDJnps3aqbIxwSNCZDMh3hRvunB4SEsfoXIoLH+6kXsPF8l7YTLMBkl8vN+RvuXPWuguUNGeBwaZv5o+ZqbeUhAcOsUvNvAIKjHrfxeDX/qCnDjIgVixmpI5SB+Nso7WPTcksQy3MA8+sf54Wrzcg7TCSBV37UXEgYuPkpUb/KB+2px sxd4business@qq.com

7.附录ssh-keygen命令参数解释

-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型。

================================================================

参考地址:https://www.jianshu.com/p/1246cfdbe460

参考地址:https://www.cnblogs.com/whlives/p/6908125.html

【linux】在linux上生成SSH-key 简单原理介绍+生成步骤的更多相关文章

  1. linux下安装Git并生成SSH key

    系统:contens7.4 1.下载源码解压 wget https://github.com/git/git/archive/v2.3.0.zip unzip v2.3.0.zip cd git-2. ...

  2. Git 生成SSH Key

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

  3. 如何生成SSH key

    SSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器,进行版本控制 步骤 检查SSH keys是否存在 生成新的ssh ...

  4. git之生成SSH key

    git之生成SSH key SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定.利用 SSH 协议可以有效防止远程管理过程中的信 ...

  5. 如何给 GitHub 添加 SSH key, 如何生成 SSH key 详细图文教程!

    如何给 GitHub 添加  SSH key, 如何生成  SSH key 详细图文教程! 一. 生成  SSH key https://ide.c9.io/xgqfrms/ 创建一个空项目:(或使用 ...

  6. win7生成ssh key配置到gitlab

    测试服务上使用ip访问gitlab,比如http://192.168.0.2/,创建用户并登陆后创建一个项目,比如git@gitlab.demo.com:demo/helloworld.git 如果想 ...

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

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

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

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

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

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

随机推荐

  1. PHP中的__clone()

    1 <?php 2 class Account { 3 public $balance; 4 5 public function __construct($balance) { 6 $this- ...

  2. 几个比较实用的CSS

    1.filter:chroma(color:#FFFFFF);    让指定的背景色透明,例: <table cellspacing = "0" cellpadding = ...

  3. PHP转盘抽奖算法

    流程: 1.拼装奖项数组 2.计算概率 3.返回中奖情况 代码如下: 中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数 function get_gift(){ //拼装奖项数组 // ...

  4. Linux Centos安装Jenkins

    Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和 ...

  5. android短信验证

    短信验证demo http://download.csdn.net/detail/crazy1235/8315279#comment 使用MOB平台开发,用法详见: http://blog.csdn. ...

  6. KnockoutJs学习笔记(六)

    这篇文章主要涉及control flow部分的binding. foreach binding主要作用于lists或是tables内数据单元的动态绑定.下面是一个简单的例子: js部分: ko.app ...

  7. 一些计数小Trick

    一些计数小Trick 虽然说计数问题如果不是特别傻逼的话想做出来基本随缘. 但是掌握一些基本的计数方法还是十分有必要的. 想到了就更新. 1. 对于排列的DP问题,一般是不能够按照位置一个一个放的,一 ...

  8. day12--python操作mysql

        本篇对于Python操作MySQL主要使用两种方式:     1.原生模块 pymsql(http://www.cnblogs.com/wupeiqi/articles/5713330.htm ...

  9. pycharm 终端命令行中文乱码解决

    ssh连接服务器,运行脚本发现终端显示的中文乱码.百度了很多方法,都没解决.后来换了个putty连接上去运行,输出屏幕的中文没乱码.可以确定是pycharm设置问题. 设置方法:  File -- s ...

  10. Python3 turtle安装和使用教程

    Python3 turtle安装和使用教程   Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数 ...