Linux之ssh服务
一、学习线路如下

二、ssh服务概述
1.SSH 为 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
2.SSH的全称Secure Shell,安全的shell,是Client/Server架构,默认端口号为22,TCP协议。
3.SSH其实用于商业,而OpenSSH即为开源的,在Linux中默认安装。
三、了解加密算法
1.对称加密算法(DES)
在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

2.非对称加密算法(RSA)
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的乙方使用甲方的公钥对信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。

3.两种加密算法的区别
1.对称加密
1) 使用同一个密钥进行加密和解密,密钥容易泄露
2)加密速度快,效率高,数据传输速度快,安全性较低
2.非对称加密
1) 使用不同的密钥(公钥和私钥)进行加密和解密
2) 加密速度远远慢于对称加密,数据传输速度慢,安全性较高
四、SSH认证的两种加密方式
1.基于用户名密码认证
1.SSH客户端向SSH服务端发起一个登录请求,服务端生成一对秘钥(公钥和私钥),并将公钥发送给客户端
2.客户端使用客户端发送的公钥把自己的登录密码发送给服务端
3.服务端通过私钥进行解密,再进行特定的加密和/etc/shadow文件中相应用户对应的密码进行对比
4.SSH服务端认证成功,则返回登录成功结果,并发送一个随机会话口令给客户端,该口令用于后面两台主机进行数据传输的一个临时加密会话口令

2.基于秘钥对认证
1.客户端想要与Server端进行免密登录,客户端先生成一对秘钥
2.客户端的公钥需要放在Server端的Authorized_keys文件中
3.客户端发起一个登录请求时,Service端会对比Authorized_keys文件中的信息
4.如果该文件中有客户端的信息后,service端会随机生成一个字符串X,并使用客户端的公钥进行加密,完成后传输在客户端。
5.客户端收到加密后的字符串后,用本地的私钥进行解密,再把解密后的数据发送给server
6.Server端把客户端发送的数据和自己生成字符串进行比对,一致后建立会话。

五、相关的命令
1.生成秘钥对
[root@jiangfeng2 ~]# ssh-keygen
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:
3b:5f:b1:1d:12:5b:bf:b1:19:71:32:94:ff:d5:36:69 root@jiangfeng2
The key's randomart image is:
+--[ RSA 2048]----+
| .. |
| .. |
| . +o+|
| + EB|
| S + o+=|
| . = .B|
| o o .+ |
| o . |
| . |
+-----------------+
2.秘钥相关的文件
[root@jiangfeng2 ~]# ll .ssh/
总用量 12
-rw------- 1 root root 411 7月 21 12:31 authorized_keys //进行认证的文件,一个系统主机只能有一个
-rw------- 1 root root 1675 7月 21 21:14 id_rsa //私钥
-rw-r--r-- 1 root root 397 7月 21 21:14 id_rsa.pub //公钥
3.将本机的公钥复制到远程机器的authorized_keys文件中
[root@jiangfeng2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.189.132
The authenticity of host '192.168.189.132 (192.168.189.132)' can't be established.
RSA key fingerprint is 5e:b5:ad:c4:e3:b6:62:9d:9d:43:0a:73:8f:a0:b7:99.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.189.132' (RSA) to the list of known hosts.
root@192.168.189.132's password:
Now try logging into the machine, with "ssh 'root@192.168.189.132'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
相关推荐
-
第18问:MySQL CPU 高了,怎么办?2025-02-24 10:27:18
-
mysql索引类型 normal, unique, full text
mysql索引类型 normal, unique, full text2025-02-24 10:05:05 -
uwsgi+django+nginx 搭建部分总结2025-02-24 10:03:33
-
使用Docker配置Nginx环境部署Nextcloud2025-02-24 10:02:03
-
Nginx安装和怎么使用2025-02-24 10:00:45