SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
是一种安全通道协议
对通信数据进行加密处理,用于远程管理
服务名称:sshd
服务端主程序:/usr/sbin/shhd
服务端配置文件:/etc/ssh/shhd_config
ssh_config:针对客户端
sshd_config:针对服务端
端口号,协议版本,监听IP地址
禁用反向解析
禁用root用户、空密码用户
限制登录验证时间、重试次数
AllowUsers:白名单:仅允许某些用户,拒绝所有人(安全性场合高的)
DenyUsers:黑名单:仅拒绝某些用户,允许所有人(安全性场合较低的)
我们打开两台虚拟机,分别用xshell连接,一台取名chen01作为服务端,ip地址为192.168.100.100、chen02作为客户端,ip地址为192.168.100.188
客户端操作
[root@chen02 ~]# ssh root@192.168.100.100
The authenticity of host '192.168.100.100 (192.168.100.100)' can't be established.
ECDSA key fingerprint is SHA256:RV00f7MSkqe7SK0tl8MNodKY5wZbjUL9379oSg2hm34.
ECDSA key fingerprint is MD5:d2:6d:6a:6a:53:bd:e7:f0:43:fd:8b:f9:8c:f3:a3:4b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.100' (ECDSA) to the list of known hosts.
root@192.168.100.100's password:
Last login: Sat Jul 18 18:04:15 2020
[root@chen01 ~]#
在opt目录下创建文件
[root@chen02 ~]# touch /opt/test01
在chen01中查看
在chen01中查看配置文件
不允许root用户登录
重启sshd服务,就发现已经无法登陆了
借王五作为跳板,切换root身份
这种情况可以利用pam验证模块,限制切换root用户
验证
开启“最大验证次数6次”的服务
验证发现输错三次密码后就被踢出,并不是六次
由此可以得出结论:默认尝试连接次数为3次,最大尝试次数为6次
● AllowUsers 白名单:仅允许某些用户,拒绝所有人 安全性场合高
● DenyUsers 黑名单:仅拒绝某些用户,允许所有人 安全性场合低
这两个功能在配置文件中没有,需要手动添加,例:
将zhangsan、wangwu添加到白名单后,尝试在客户端用lisi账号登录
打开第三个终端,名称为chen03,IP地址192.168.100.8,在这个终端尝试使用wangwu用户登录
开启三条指令
在客户端chen02新建caiwu用户,切换到caiwu用户
把公钥复制给wangwu用户
这时候在客户端登录服务端的wangwu用户需要输入的不再是wangwu的密码而是密钥的密码
但是,实际中每次登录输入密码太麻烦,可以添加免交互密码,使再次登录服务器的时候可以不用输入密码
scp复制文件命令分为两种:
scp user@host:file1 file2 #从服务端复制文件到客户端
scp file1 user@host:file2 #从客户端复制文件到服务端
参数 -r #递归复制
远程下载成功
修改文件,然后客户端再上传给服务端
服务端接收到了文件
方式1:通过tcpd程序对其他服务程序进行包装
方式2:由其他服务程序调用libwrap.so. *链接库
●/etc/hosts. allow
●/etc/hosts.deny
策略格式
服务列表:客户机地址列表
服务程序列表
多个服务以逗号分隔,ALL表示所有服务
客户端地址列表
多个地址以逗号分隔,ALL表示所有服务
允许使用通配符*和?
网段地址,如192.168.1 或者 192.168.1.0/255.255.255.0
区域地址,如.benet.com
先检查hosts.allow,找到匹配则允许访问
再检查hosts.deny,找到则拒绝访问
若两个文件中均无匹配策略,则默认允许访问
配置文件:/etc/hosts.allow
[root@tes02 ~]# vim /etc/hosts.allow
sshd:192.168.60.*,20.0.0.20 ####允许192.168.60网段所有以及20.0.0.20主机远程登录
配置文件:/etc/hosts.deny
[root@tes02 ~]# vim /etc/hosts.deny
sshd:ALL(禁止所有进行远程登录)