在Linux系统中,终端服务是实现远程管理和多用户访问的核心功能,通过终端服务,用户可以在不同设备上安全地连接到Linux服务器,进行命令行操作或图形界面交互,本文将以主流的SSH(Secure Shell)协议为核心,结合图形终端服务(如XRDP),详细介绍Linux终端服务的安装、配置与安全加固流程,涵盖Ubuntu/Debian和CentOS/RHEL两大主流发行版,确保不同环境下的用户均可顺利完成部署。
系统准备与环境检查
在安装终端服务前,需确保系统满足基本要求并完成准备工作,确认Linux发行版版本,不同发行版的包管理工具和配置文件路径可能存在差异,Ubuntu/Debian使用apt
管理包,而CentOS/RHEL使用yum
或dnf
,确保系统已更新至最新状态,避免因软件包版本过旧导致兼容性问题,以Ubuntu为例,执行以下命令更新系统:
sudo apt update && sudo apt upgrade -y
对于CentOS 7及以上版本,使用:
sudo yum update -y # CentOS 7 sudo dnf update -y # CentOS 8+
建议为终端服务创建一个非root用户(如admin
),并通过sudo
授权,避免直接使用root用户操作,提升安全性,创建用户命令:
sudo adduser admin sudo usermod -aG sudo admin
安装SSH终端服务(核心远程访问协议)
SSH是Linux终端服务的基石,提供加密的远程登录、文件传输和端口转发功能,大多数Linux发行版默认已安装SSH服务,若未安装,可通过以下步骤部署。
安装SSH服务
- Ubuntu/Debian系统:
使用apt
安装OpenSSH服务器(SSH服务的开源实现):sudo apt install openssh-server -y
- CentOS/RHEL系统:
使用yum
或dnf
安装:sudo yum install openssh-server -y # CentOS 7 sudo dnf install openssh-server -y # CentOS 8+
启动并启用SSH服务
安装完成后,启动SSH服务并设置开机自启:
sudo systemctl start sshd # 启动SSH服务(Ubuntu/Debian为ssh,CentOS/RHEL为sshd) sudo systemctl enable sshd # 设置开机自启
验证服务状态:
sudo systemctl status sshd # 查看服务运行状态(应显示“active (running)”)
配置SSH服务
SSH服务的核心配置文件为/etc/ssh/sshd_config
(CentOS/RHEL)或/etc/ssh/sshd_config
(Ubuntu/Debian),通过修改此文件可调整安全策略和功能参数,以下是关键配置项及说明(修改前建议备份原文件):
配置项 | 默认值 | 说明 | 推荐值 |
---|---|---|---|
Port | 22 | SSH服务监听端口 | 自定义(如2222) |
PermitRootLogin | yes | 是否允许root用户直接SSH登录 | no |
PasswordAuthentication | yes | 是否允许密码认证(与密钥认证互斥) | no(强制密钥认证) |
PubkeyAuthentication | yes | 是否允许公钥认证 | yes |
AllowUsers | 无 | 允许SSH登录的用户列表(空表示允许所有用户) | admin(仅允许指定用户) |
MaxAuthTries | 6 | 最大认证尝试次数 | 3 |
LoginGraceTime | 120 | 登录超时时间(秒) | 60 |
修改步骤:
使用vim
或nano
编辑配置文件:
sudo nano /etc/ssh/sshd_config
根据需求修改上述配置项(将PermitRootLogin
改为no
,Port
改为2222
),保存后重启SSH服务使配置生效:
sudo systemctl restart sshd
配置防火墙规则
Linux系统默认启用防火墙(如Ubuntu的ufw
、CentOS的firewalld
),需开放SSH服务端口(默认22或自定义端口)以允许远程连接。
Ubuntu/Debian(UFW防火墙)
sudo ufw allow 22/tcp # 允许默认22端口(若修改为2222,则替换为2222/tcp) sudo ufw enable # 启用防火墙(首次启用需确认)
CentOS/RHEL(Firewalld防火墙)
sudo firewall-cmd --permanent --add-port=22/tcp # 添加端口(永久生效) sudo firewall-cmd --reload # 重载防火墙配置
安装图形终端服务(可选)
若需通过图形界面远程访问Linux服务器(如使用Windows的“远程桌面连接”),可安装XRDP(基于RDP协议)或VNC(虚拟网络计算),以XRDP为例,支持多用户登录且与Windows兼容。
安装XRDP及依赖
- Ubuntu/Debian系统:
sudo apt install xrdp xorg -y
- CentOS/RHEL系统:
需先安装EPEL仓库,再安装XRDP:sudo yum install epel-release -y # CentOS 7 sudo dnf install epel-release -y # CentOS 8+ sudo yum install xrdp xorg-x11-server-Xorg -y # CentOS 7 sudo dnf install xrdp xorg-x11-server-Xorg -y # CentOS 8+
配置XRDP
XRDP默认使用系统用户认证,无需额外配置,安装完成后,启动服务并设置开机自启:
sudo systemctl enable xrdp --now
若遇到黑屏问题,可修改~/.xsession
文件(用户目录下),添加启动命令(如startxfce4
用于XFCE桌面环境):
echo "startxfce4" > ~/.xsession
安全加固与测试
安全加固措施
- 禁用密码认证,启用密钥认证:
生成SSH密钥对(本地执行):ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
将公钥复制到服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@服务器IP
修改
sshd_config
文件,设置PasswordAuthentication no
并重启SSH服务。 - 修改默认端口:
避免使用默认22端口,减少自动化攻击扫描(需同步更新防火墙规则)。 - 限制登录用户:
在sshd_config
中设置AllowUsers admin user1
,仅允许指定用户登录。
测试连接
- 命令行SSH连接:
本地终端执行:ssh -p 端口号 admin@服务器IP
(若修改端口为2222,则
-p 2222
) - 图形界面XRDP连接:
在Windows搜索“远程桌面连接”,输入服务器IP,使用系统用户名和密码登录。
相关问答FAQs
Q1:如何修改SSH默认端口后无法连接?
A:修改SSH端口后需同步更新防火墙规则,将端口改为2222后,Ubuntu需执行sudo ufw allow 2222/tcp
,CentOS需执行sudo firewall-cmd --permanent --add-port=2222/tcp && sudo firewall-cmd --reload
,检查sshd_config
中Port
配置是否正确,并确保无其他安全工具(如fail2ban)拦截新端口。
Q2:如何禁止root用户直接SSH登录?
A:编辑/etc/ssh/sshd_config
文件,找到PermitRootLogin
行,将其值改为no
(或prohibit-password
禁止密码登录但允许密钥登录),保存后执行sudo systemctl restart sshd
重启服务,此后需通过普通用户登录,再通过sudo su -
切换至root用户,提升安全性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37867.html