CentOS 7 的 SSH 配置详解
SSH(Secure Shell)是一种加密的网络传输协议,主要用于在不安全的网络中安全地远程登录和管理计算机,本文将详细介绍如何在 CentOS 7 上配置 SSH 服务,包括安装、配置、启动、端口更改以及常见问题的解决。
一、SSH 服务简介
SSH 是一种加密的网络协议,用于在不安全的网络中安全地进行数据传输,它不仅支持远程登录,还支持远程命令执行和文件传输等功能,SSH 使用公钥加密技术来保证数据的安全性,有效防止了中间人攻击和窃听。
二、检查是否安装 SSH 服务
在配置和使用 SSH 之前,需要确保系统中已经安装了 SSH 服务,CentOS 7 通常默认安装了opensshserver
,可以通过以下命令进行检查:
rpm qa | grep openssh
如果未安装,可以使用以下命令进行安装:
sudo yum install y opensshserver
三、启动与停止 SSH 服务
安装完成或确认已安装后,可以通过以下命令启动 SSH 服务:
sudo systemctl start sshd
要设置 SSH 服务开机自启,可以使用:
sudo systemctl enable sshd
查看 SSH 服务状态:
sudo systemctl status sshd
停止 SSH 服务:
sudo systemctl stop sshd
四、修改 SSH 默认端口
默认情况下,SSH 服务运行在端口 22 上,为了提高安全性,可以修改为其他端口号,以下是具体步骤:
1、编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
2、查找并修改Port
参数,如果参数前有#
,则去掉#
取消注释,并修改为所需的端口号,2222:
Port 2222
3、保存并关闭文件,然后重启 SSH 服务以使更改生效:
sudo systemctl restart sshd
4、如果服务器启用了防火墙,还需要允许新端口通过:
sudo firewallcmd permanent addport=2222/tcp sudo firewallcmd reload
五、配置防火墙
如果系统启用了防火墙,需要允许 SSH 通信的端口通过,默认情况下,SSH 使用 22 端口,如果修改了 SSH 端口,则需要更新防火墙规则。
1、永久添加端口到防火墙:
sudo firewallcmd permanent addport=22/tcp
如果修改了 SSH 端口,例如改为 2222,则需要:
sudo firewallcmd permanent addport=2222/tcp
2、重新加载防火墙配置:
sudo firewallcmd reload
六、配置 SSH 服务选项
SSH 服务的配置主要通过编辑/etc/ssh/sshd_config
文件来完成,以下是一些常用的配置选项及其说明:
1、监听地址(ListenAddress):指定 SSH 服务器绑定的 IP 地址,设置为0.0.0.0
表示监听所有网络接口。
ListenAddress 0.0.0.0
2、禁止 root 用户直接登录(PermitRootLogin):出于安全考虑,建议禁用 root 用户直接登录,可以通过普通用户登录后使用sudo
切换到 root 权限。
PermitRootLogin no
3、密码验证(PasswordAuthentication):是否允许使用密码进行认证,可以设置为yes
或no
,如果禁用密码验证,可以提高安全性,但需要配置公钥认证。
PasswordAuthentication yes
4、公钥认证(PubkeyAuthentication):启用公钥认证。
PubkeyAuthentication yes
5、最大认证次数(MaxAuthTries):设置最大密码输入错误次数,多次失败后锁定连接。
MaxAuthTries 3
6、登录超时时间(LoginGraceTime):设置登录会话的超时时间,单位为秒。
LoginGraceTime 120
七、重启 SSH 服务
任何对sshd_config
文件的修改都需要重启 SSH 服务才能生效:
sudo systemctl restart sshd
八、相关问答FAQs
问题1:如何更改 SSH 的默认端口?
答:要更改 SSH 的默认端口,需要编辑/etc/ssh/sshd_config
文件,找到并修改Port
参数,将端口改为 2222:
Port 2222
保存修改后,重启 SSH 服务并更新防火墙规则。
问题2:如何禁用 root 用户通过 SSH 登录?
答:要禁用 root 用户通过 SSH 登录,可以在/etc/ssh/sshd_config
文件中设置PermitRootLogin
参数为no
:
PermitRootLogin no
保存修改后,重启 SSH 服务,这样,root 用户将无法直接通过 SSH 登录,只能通过普通用户登录后使用sudo
提升权限。