前言
服务器默认 SSH 端口是 22,默认登录用户是拥有最高权限的 root。为了提高安全性,可以使用密钥登录,或修改 SSH 端口并创建普通用户。无论采用哪种方式,都应禁用 root 直接登录。
yum list installed | grep ssh
yum install openssh-server
新增用户
禁用 root 前先创建其他用户,否则禁止 root 后将无法登录:
adduser testuser
passwd testuser
输入密码时终端不会显示字符,回车后再次确认即可。
禁用 root 用户登录
vim /etc/ssh/sshd_config
找到 #PermitRootLogin yes,去掉注释并改为:
PermitRootLogin no
保存退出后重启 SSH:
systemctl restart sshd
修改 SSH 登录端口
以下操作需要 root 权限,非 root 用户先执行 su root。先查看 SSH 端口:
semanage port -l | grep ssh
如果提示找不到 semanage,安装其依赖:
yum provides semanage
yum install policycoreutils-python
向 SELinux 添加自定义 SSH 端口(示例为 10086):
semanage port -a -t ssh_port_t -p tcp 10086
semanage port -l | grep ssh
修改 SSH 配置,暂时保留 22 端口,确认新端口可用后再关闭 22:
vim /etc/ssh/sshd_config
Port 22
Port 10086
systemctl restart sshd
打开防火墙端口
firewall-cmd --zone=public --add-port=10086/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
使用非 22 端口登录成功后,再删除 22 端口:
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
也可以把 /etc/ssh/sshd_config 中的 Port 22 注释掉,然后重启 sshd 服务。