目录
一、SSH服务
1.SSH基础
2.SSH的优点
3.SSH的配置信息
4.SSH原理
二、.SSH登录
1.登录方法
2.模拟防火墙
3.服务端配置
4.修改默认端口和禁止root用户登录
5.白名单和黑名单
1.白名单
2.黑名单
六、SSH服务的实践
七、使用秘钥对及免交互验证登录
1.原理:1.用户/密码
2.172.16.114.10主机配置
3.172.16.114.20主机配置
4.172.16.114.30主机配置
总结:本章主要介绍了SSH的相关知识以及SSH相关实验配置
1.SSH是一种安全通道协议,实现字符界面的远程登录,压缩等功能SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
2.SSH服务端主要包括两个服务功能 SSH远程链接和SFTP服务(文件传输功能)
1.数据传输是加密的,可以防止信息泄露
2.数据传输是压缩的,可以提高传输速度
3.SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输
1.服务名称:SSHD
2.服务配置程序:/usr/sbin/sshd
3.服务端配置文件:/etc/ssh/sshd_config
4.客户端配置文件:/etc/ssh/ssh_config
客户端首次发起连接,服务端会生成一个随机会话id,会将服务端的公钥以及会话id发给客户端
客户端收到会话id以及服务端的公钥,会用客户端自己的公钥和会话id运算产生一个结果,然后再用服务端公钥加密,最后将这个加密结果传给服务端
服务端收到加密结果后,会用自己的私钥解密加密的结果,因为已知会话id就可以得出客户端的公钥
1.方法一:
ssh [远程主机用户名]@[远程服务器主机名或者IP地址] -p [端口号]
远程登录默认使用22端口 root(登录对方的用户)@ IP 地址,首次登录会询问,并要求输入密码,输入密码后登录成功
2.方法二:
ssh -l [远程主机用户名] [远程服务器主机名或IP地址] -p [端口号]
3.SSH选项
-l 指定登录名称
-p 指定登录端口
-t 跳板连接
iptables -A INPUT -s 192.168.91.102 -j REJECT 模拟防火墙
ssh -t 172.16.114.20 ssh 172.16.114.30 方便跳板连接
vim /etc/ssh/sshd_config 编辑配置文件
port 22 可以修改端口号
1.修改默认端口
vim /etc/ssh/sshd_config 修改默认端口
Port 9527 17 行修改自己默认的端口
2.禁止root用户登录
vim /etc/ssh/sshd_config 编辑配置文件
PermitRootLogin no 开启38 行 并改为 no,默认注释并写的yes(虽然阻止了root 但是普通用户可以使用su命令切换)
ssh [email protected] 使用lc1用户登录连接主机
su root 使用su命令可以切换
配置文件里修改38行为no
可以修改pam认证模块来禁止使用su命令
vim /etc/pam.d/su 修改pam配置文件
6 auth required pam_wheel.so use_uid 开启第6行,默认注释
1.主机172.16.114.20配置
vim /etc/ssh/sshd_config 配置文件
AllowUsers [email protected] lc1 允许所有有的主机访问我的lc1用户
只允许172.16.114.10访问我的lc
useradd lc 添加新用户lc
passwd lc 设置密码
systemctl restart sshd 重启服务
2.主机172.16.114.10测试
3.主机172.16.114.30测试
vim /etc/ssh/sshd_config 配置文件
DenyUsers lc 拒绝所有人连接lc用户
ssh [email protected] 连接lc用户
连接失败
建议使用非默认端口 22
禁止使用protocol version 1
限制可登录用户 白名单
设定空闲会话超时时长
利用防火墙设置ssh访问策略
仅监听特定的IP地址 公网 内网
基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs
使用基于密钥的认证
禁止使用空密码
禁止root用户直接登录
限制ssh的访问频度和并发在线数
经常分析日志 分离
2.基于秘钥
用户/密码:1.生成公钥和私钥
2.将公钥导给对面
ssh-keygen -t ecdsa 生成密钥文件
三个回车
cd .ssh 切换目录
ssh-copy-id -i id_ecdsa.pub 172.16.114.20 将公钥文件导入对方用户
yes 确定
输入密码
ssh [email protected] 测试是否连接20主机
exit 退出
ssh-copy-id -i id_ecdsa.pub 172.16.114.30 将公钥文件导入对方用户
yes 确定
输入密码
ssh [email protected] 测试是否连接30主机
ssh-keygen -t ecdsa 生成密钥文件
三个回车
cd .ssh 切换目录
ssh-copy-id -i id_ecdsa.pub 172.16.114.10 将公钥文件导入对方用户
yes 确定
输入密码
ssh [email protected] 测试是否连接10主机
exit 退出
ssh-copy-id -i id_ecdsa.pub 172.16.114.30 将公钥文件导入对方用户
yes 确定
输入密码
ssh [email protected] 测试是否连接30主机
ssh-keygen -t ecdsa 生成密钥文件
三个回车
cd .ssh 切换目录
ssh-copy-id -i id_ecdsa.pub 172.16.114.10 将公钥文件导入对方用户
yes 确定
输入密码
ssh [email protected] 测试是否连接10主机
exit 退出
ssh-copy-id -i id_ecdsa.pub 172.16.114.20 将公钥文件导入对方用户
yes 确定
输入密码
ssh [email protected] 测试是否连接20主机
这样秘钥对及免交互验证登录就做好了