SSH服务概述
SSH(Secure Shell)是一种加密的网络传输协议,主要用于远程登录和管理Linux系统,相较于传统的Telnet、FTP等明文传输协议,SSH通过加密机制保障了数据传输的机密性和完整性,有效防止了信息泄露和中间人攻击,在Linux系统中,SSH服务通常由OpenSSH软件包提供,其服务端程序为sshd,客户端程序为ssh,开启SSH服务是实现安全远程管理的基础操作,尤其适用于服务器运维场景。

检查SSH服务是否已安装
在开启SSH服务前,需确认系统是否已安装OpenSSH软件包,不同Linux发行版的检查命令略有差异:
-
基于Debian/Ubuntu的系统
使用dpkg命令检查:dpkg -l | grep openssh-server
若返回类似
ii openssh-server 1:8.9p1-3ubuntu0.1 amd64 OpenSSH server for secure remote login的结果,表示已安装;若未安装,可通过以下命令安装:sudo apt update && sudo apt install openssh-server
-
基于RHEL/CentOS的系统
使用rpm命令检查:rpm -qa | grep openssh-server
若未安装,使用
yum或dnf安装:sudo yum install openssh-server # CentOS 7及以下 sudo dnf install openssh-server # CentOS 8及以上
安装完成后,建议通过ssh -V命令验证客户端版本,确保安装成功。
启动并启用SSH服务
确认SSH服务安装后,需启动服务并设置为开机自启,以确保远程连接的持续性。
启动SSH服务
- 使用systemd(现代Linux发行版主流)
sudo systemctl start sshd
- 使用service(旧版系统)
sudo service sshd start
设置开机自启
-
systemmctl方式
sudo systemctl enable sshd
此命令会在系统启动时自动加载SSH服务,避免手动干预。

-
chkconfig方式(RHEL/CentOS 6及以下)
sudo chkconfig sshd on
验证服务状态
通过以下命令确认SSH服务是否正常运行:
sudo systemctl status sshd
若返回Active: active (running),表示服务已成功启动。
配置SSH服务(可选但推荐)
默认的SSH配置可能无法满足安全或个性化需求,可通过编辑/etc/ssh/sshd_config文件进行调整,修改前建议备份原配置:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
常用配置项
-
修改默认端口
默认端口为22,修改可降低自动化攻击风险:Port 2222 # 建议使用1024-65535之间的端口
-
禁止root用户直接登录
提升安全性,建议通过普通用户登录后切换至root:PermitRootLogin no
-
限制登录用户
仅允许特定用户远程登录:AllowUsers user1 user2
-
启用密钥认证
禁用密码登录,仅允许SSH密钥认证(更安全):PasswordAuthentication no PubkeyAuthentication yes
配置完成后,需重启SSH服务使生效:

sudo systemctl restart sshd
配置防火墙规则
SSH服务默认监听22端口(或自定义端口),需确保防火墙允许该端口的入站流量。
firewalld(CentOS 7+/RHEL 7+/Fedora)
sudo firewall-cmd --permanent --add-service=ssh # 允许SSH服务(默认端口) sudo firewall-cmd --reload # 重新加载防火墙
若使用自定义端口(如2222):
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
ufw(Ubuntu/Debian)
sudo ufw allow ssh # 允许默认SSH端口 sudo ufw enable # 启用防火墙(首次启用需确认)
自定义端口:
sudo ufw allow 2222/tcp
iptables(旧版系统)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许22端口 sudo iptables-save > /etc/iptables/rules.v4 # 保存规则
客户端连接测试
配置完成后,可通过SSH客户端远程连接服务器,以Linux/macOS终端为例:
ssh username@server_ip
首次连接会提示确认服务器指纹(输入yes),之后输入用户密码即可登录,若配置了密钥认证,需添加-i参数指定私钥路径:
ssh -i ~/.ssh/private_key username@server_ip
若连接失败,可检查以下问题:
- SSH服务是否运行(
systemctl status sshd) - 防火墙是否放行端口
- 配置文件语法是否正确(
sshd -t测试配置)
SSH服务的安全维护
为确保SSH服务长期安全运行,需定期进行以下维护:
- 更新系统:及时安装OpenSSH安全更新,修复已知漏洞。
- 监控日志:通过
/var/log/auth.log(Ubuntu)或/var/log/secure(RHEL)监控登录尝试,发现异常IP立即封禁。 - 禁用不必要功能:如
X11Forwarding、AllowTcpForwarding等,减少攻击面。 - 定期轮换密钥:避免长期使用同一对SSH密钥。
通过以上步骤,可完成Linux系统中SSH服务的开启、配置与安全加固,为远程管理提供稳定、安全的连接通道。













