一、Openssh
1.SSH可以在本地主机和远程服务器之间进行加密地传输数据,实现数据的安全。
openssh即开启对外开放连接的接口
2. 对称加密
1)对文件进行加密
openssl enc -des3 -salt -a -in file -out file.des3 #加密文件;-des3加密算法,-salt默认参数,-a以base流形式加密(默认),-in需要加密的文件,-out输出加密文件
2)对文件解密
openssl enc -des3 -d -salt -a -in file.des3 -out file #解密文件;-d解密
3.单向加密:加密不可逆,加密之后不能加密只能用来验证数据完整性
md5sum file #提取特征码
openssl dgst -md5 file #dgst关键字,-md5加密算法
二、SSH的工作原理
SSH是由服务端和客户端组成,服务端是一个守护进程,它在后台运行并响应来自客户端的连接请求版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的
1)版本密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的
2)算法认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行
3)认证会话请求阶段, 认证通过后,客户端向服务器端发送会话请求
4)交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互
注:openssh 服务的服务端:sshd
openssh 服务的客户端:ssh
三、远程连接的步骤
- 将虚拟机的网络连接设置改为桥接模式,ping 主机 是否可以ping通。
-
分别设置一个虚拟机为服务器端,另一个为客户端。
-
在客户端连接sshd
1)远程主机首次登陆
2)指定用户连接主机
例:在客户端连接ip 为192.168.0.155
ssh [email protected]
即可连接到ip为192.168.0.155 的虚拟机
四、服务器端与客户端间的处理
- 在服务器端下发文件
例:向ip为192.168.0.126 的虚拟机下发aa文件
scp aa [email protected] :/root
然后在客户端查看是否会有aa文件,查看内容
- ssh服务添加的认证–key
1)生成锁和钥匙
ssh -keygen(若设置密码,不少于四位)
免密key认证
[root@wq ~]# 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): #可以为空,如果想为空必须大于4位
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:Ad5CGDT2E3/oIFvxnJiIN0KHhMMgY2Usv5zqq4hUTX0 root@wq
The key's randomart image is:
+---[RSA 2048]----+
|*+==*o= |
|==o=.*.@ o |
| .= =.X.OE. |
| +o= =.o |
| ..+. S |
| .+ |
| .. |
|+. |
|*o. |
+----[SHA256]-----+
2)在服务端对ssh加密认证
ssh-copy-id -i /root/.ssh/id_rsa.pub root@服务端IP
五、安全配置
1.SSH相关配置文件
more /etc/ssh/sshd_config #服务端配置文件
more /etc/ssh/ssh_config #客户端配置文件
vi /etc/ssh/sshd_config,在下面“蓝线标记”编辑设置的内容
# To disable tunneled clear text passwords, change to no here!
63 #PasswordAuthentication yes
64 #PermitEmptyPasswords no##开启或关闭root用户的登陆权限
65 PasswordAuthentication yes##开启或关闭ssh的默认认证方式
2.黑名单与白名单
1)黑名单
除了黑名单用户,其他人均可远程连接主机
例:将Alice用户设置为黑名单用户
检测:客户端不能通过远程连接到alice用户
(相当于在服务器端将alice用户保护起来)
2)白名单
除了白名单用户,其他人均不可远程连接主机
例:将alice用户设置为白名单用户
检测:其他用户均不能通过ssh远程连接