CentOS——SSH远程访问控制(一)

本文详细介绍SSH服务的配置步骤及安全策略,包括修改配置文件、启用服务、远程登录、限制root用户登录、使用普通用户作为跳板切换root、PAM安全认证、密码尝试次数限制及黑白名单设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----------------------概述-----------------------

SSH是一种安全通道协议,主要是用来实现字符界面的远程登陆,远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的telnet(远程登录),rsh(Remote Shell,远程执行命令),rcp(Remote File Copy,远程文件复制)等应用相比,SSH协议提供了更好的安全性。

·

SH服务:sshd 允许远程登陆访问的服务 (密文传输)对应端口号 TCP 22端口

--------------------系统环境---------------------

centOS7 一台作为服务端(SSH服务器),一台作为客户端,并分别将主机名修改为01和02

--------------------实验过程-------------------

修改配置文件

1、修改SSH主配置文件,SSH主配置文件:"/etc/ssh/ssh_config"(客户端配置文件)、"/etc/ssh/sshd_config"(服务端配置文件),将"#"删除即可开启服务,记得不要忘了保存退出

vim /etc/ssh/sshd_config
Port 22                                          监听端口,默认监听22端口  
#AddressFamily any                   可以选择IPV4和IPV6协议,any表示都使用
#ListenAddress 0.0.0.0                指明监听的地址(IPV4) 
#ListenAddress ::                         指明监听的地址(IPV6)

CentOS——SSH远程访问控制(一)
#LoginGraceTime 2m————会话时间(默认时间为2分钟)
#PermitRootLogin yes————是否允许root用户远程登录(yes表示允许)
#StrictModes yes——————验证访问权限
#MaxAuthTries 6——————密码验证次数(默认为6次)
#MaxSessions 10——————访问的最大连接数


![](https://s1.51cto.com/images/blog/201909/10/64f1840fd1609512e53f3064d992da40.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

·

2、修改完配置文件之后需要重新启动服务

systemctl restart sshd

CentOS——SSH远程访问控制(一)

·

3、接下来用客户端主机去远程访问服务器,当前我们使用的时root用户登录

ssh root@192.168.100.128

CentOS——SSH远程访问控制(一)

·

4、大家都知道root用户是系统的管理员,所拥有的权限相对较高,如果别人可以随便远程登录的话会很不安全,可以在配置文件中修改权限,使得别人无法在远程登陆时使用root用户登录,修改完之后一定要重启服务
CentOS——SSH远程访问控制(一)
CentOS——SSH远程访问控制(一)

·

5、这时候我们再使用root用户远程登录,输入密码后显示权限拒绝,当切换为普通用户登陆时就可以访问
CentOS——SSH远程访问控制(一)
CentOS——SSH远程访问控制(一)

·

6、那么这时候我们可不可以使用普通用户作为跳板切换为root用户呢?答案肯定是可以的
CentOS——SSH远程访问控制(一)

·

7、遇到上述的这种情况可以用到使用PAM安全认证,将允许使用"su"的用户添加到"wheel"组即可

vim /etc/pam.d/su

CentOS——SSH远程访问控制(一)

·

8、 使用"id"命令可以看到"akg"用户已经添加在"wheel"组里,而"boss"用户并没有添加在"wheel"组里,这时再使用"boss’用户切换root用户可以显示,权限拒绝,而添加在"wheel"组里的用户依然可以切换
CentOS——SSH远程访问控制(一)

·

9、之前我们在配置文件中的最大密码尝试次数为6次,进入配置文件进行开启,现在测试一下,我们也可以使用"-o NumberOfPasswordPrompts=8"进行测试(输入8)
CentOS——SSH远程访问控制(一)
CentOS——SSH远程访问控制(一)
可以看到默认输入尝试输入三次密码就会退出,但是如果设定尝试超过6次的话就能发现设置上限制值是6次

·

10、还可以通过在配置文件中添加黑白名单来限制用户登录,现在用户boss只能在192.168.100.55中登录,lisi可以在任何主机上登录,配置完重启服务
CentOS——SSH远程访问控制(一)

11、我们使用192.168.100.55的主机登录时,由于设置了白名单,用户"akg"并不能登录,只有"lisi"和"boss"可以登录
CentOS——SSH远程访问控制(一)
CentOS——SSH远程访问控制(一)
CentOS——SSH远程访问控制(一)

### 如何配置 CentOS 服务器启用 SSH 远程访问 #### 检查并安装 SSH 服务 为了确保能够通过 SSH 访问 CentOS 服务器,首先要确认是否已安装必要的软件包。可以通过以下命令来验证: ```bash rpm -qa | grep -E "openssh" ``` 如果上述命令返回的结果不包含 `openssh-server` 或者其他相关组件,则需要执行下面的命令来进行安装[^2]。 ```bash yum install openssh-server -y ``` #### 启动与设置 SSH 服务 旦确认或完成了 OpenSSH 的安装之后,启动 SSHD 并将其设为开机自启是非常重要的步操作。这可通过下列指令完成: ```bash service sshd start chkconfig sshd on ``` 对于较新的基于 systemd 的系统版本(如 CentOS 7),应使用如下替代命令: ```bash systemctl enable sshd.service systemctl start sshd.service ``` #### 调整防火墙规则以允许 SSH 流量 为了让外部设备成功建立 SSH 连接,默认情况下可能还需要调整系统的防火墙策略以便让特定端口保持开放状态。通常来说,这是指 TCP 协议下的第 22 号端口;当然也可以根据实际需求更改此数值。这里给出两种不同的处理方法——种是在不停止整个防护体系的前提下仅做适当放宽,另种则是完全禁用它,在生产环境中显然推荐前者。 ##### 方法 A: 开放指定端口而不关闭防火墙 针对 iptables 用户而言,添加条新规则即可满足要求: ```bash iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT service iptables save ``` 而对于 firewalld 用户则需采取不同措施: ```bash firewall-cmd --zone=public --add-port=22/tcp --permanent firewall-cmd --reload ``` ##### 方法 B: 关闭防火墙 (谨慎选择) 有时出于简化管理的目的可能会考虑直接停用防火墙功能,但这并不总是最安全的做法。不过无论如何还是提供了相应选项供参考: ```bash systemctl stop firewalld systemctl disable firewalld ``` #### 修改 SSH 配置文件优化性能 当遇到连接速度过慢的情况时,可以尝试编辑 `/etc/ssh/sshd_config` 文件并将其中有关 GSS-API 认证的部分改为拒绝模式从而加快响应时间[^4]。 ```bash vim /etc/ssh/sshd_config ``` 找到类似于 `#GSSAPIAuthentication yes` 的行,并更改为: ```plaintext GSSAPIAuthentication no ``` 保存变更后记得重启 SSH 服务使改动生效。 #### 测试 SSH 连接有效性 最后但同样重要的是要检验切设定都按预期工作着。可以从另台机器上发起测试性的登录请求看看能否顺利进入目标主机内部环境。 ```bash ssh username@your_centos_ip_address ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值