SSH远程登录协议

目录

一、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相关实验配置


一、SSH服务

1.SSH基础

1.SSH是一种安全通道协议,实现字符界面的远程登录,压缩等功能SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

2.SSH服务端主要包括两个服务功能 SSH远程链接和SFTP服务(文件传输功能)

2.SSH的优点

1.数据传输是加密的,可以防止信息泄露

2.数据传输是压缩的,可以提高传输速度

3.SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输

3.SSH的配置信息

1.服务名称:SSHD

2.服务配置程序:/usr/sbin/sshd

3.服务端配置文件:/etc/ssh/sshd_config

4.客户端配置文件:/etc/ssh/ssh_config

4.SSH原理

客户端首次发起连接,服务端会生成一个随机会话id,会将服务端的公钥以及会话id发给客户端

客户端收到会话id以及服务端的公钥,会用客户端自己的公钥和会话id运算产生一个结果,然后再用服务端公钥加密,最后将这个加密结果传给服务端

服务端收到加密结果后,会用自己的私钥解密加密的结果,因为已知会话id就可以得出客户端的公钥

二、.SSH登录

1.登录方法

1.方法一:

ssh [远程主机用户名]@[远程服务器主机名或者IP地址] -p [端口号]

远程登录默认使用22端口   root(登录对方的用户)@ IP 地址,首次登录会询问,并要求输入密码,输入密码后登录成功

SSH远程登录协议_第1张图片

2.方法二:

ssh -l [远程主机用户名] [远程服务器主机名或IP地址] -p [端口号]

SSH远程登录协议_第2张图片

3.SSH选项

-l 指定登录名称

-p 指定登录端口

-t 跳板连接

2.模拟防火墙

iptables -A INPUT -s 192.168.91.102 -j REJECT    模拟防火墙

ssh -t 172.16.114.20 ssh 172.16.114.30                  方便跳板连接
SSH远程登录协议_第3张图片

3.服务端配置

vim /etc/ssh/sshd_config   编辑配置文件

port 22     可以修改端口号

SSH远程登录协议_第4张图片

SSH远程登录协议_第5张图片

SSH远程登录协议_第6张图片

SSH远程登录协议_第7张图片

4.修改默认端口和禁止root用户登录

1.修改默认端口

vim  /etc/ssh/sshd_config            修改默认端口

Port 9527                                     17 行修改自己默认的端口

SSH远程登录协议_第8张图片

2.禁止root用户登录

vim /etc/ssh/sshd_config         编辑配置文件

PermitRootLogin no                开启38 行 并改为 no,默认注释并写的yes(虽然阻止了root 但是普通用户可以使用su命令切换)

ssh [email protected]           使用lc1用户登录连接主机

su root                                     使用su命令可以切换

SSH远程登录协议_第9张图片

配置文件里修改38行为no

SSH远程登录协议_第10张图片

可以修改pam认证模块来禁止使用su命令

vim /etc/pam.d/su           修改pam配置文件

6 auth            required        pam_wheel.so use_uid         开启第6行,默认注释

SSH远程登录协议_第11张图片

SSH远程登录协议_第12张图片

5.白名单和黑名单

1.白名单

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  重启服务

SSH远程登录协议_第13张图片

2.主机172.16.114.10测试

SSH远程登录协议_第14张图片

3.主机172.16.114.30测试

SSH远程登录协议_第15张图片

2.黑名单

vim /etc/ssh/sshd_config 配置文件

DenyUsers lc  拒绝所有人连接lc用户

SSH远程登录协议_第16张图片

ssh [email protected] 连接lc用户

SSH远程登录协议_第17张图片

连接失败

六、SSH服务的实践

  1. 建议使用非默认端口 22

  2. 禁止使用protocol version 1

  3. 限制可登录用户 白名单

  4. 设定空闲会话超时时长

  5. 利用防火墙设置ssh访问策略

  6. 仅监听特定的IP地址 公网 内网

  7. 基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs

  8. 使用基于密钥的认证

  9. 禁止使用空密码

  10. 禁止root用户直接登录

  11. 限制ssh的访问频度和并发在线数

  12. 经常分析日志 分离

七、使用秘钥对及免交互验证登录

1.原理:1.用户/密码

2.基于秘钥

用户/密码:1.生成公钥和私钥

2.将公钥导给对面

2.172.16.114.10主机配置

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远程登录协议_第18张图片

SSH远程登录协议_第19张图片

3.172.16.114.20主机配置

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远程登录协议_第20张图片

SSH远程登录协议_第21张图片

4.172.16.114.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主机

SSH远程登录协议_第22张图片

SSH远程登录协议_第23张图片

这样秘钥对及免交互验证登录就做好了

总结:本章主要介绍了SSH的相关知识以及SSH相关实验配置

你可能感兴趣的:(ssh,服务器,linux)