【linux】在linux上生成SSH-key 简单原理介绍+生成步骤
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