SSH服务概述
SSH(Secure Shell)是一种加密的网络传输协议,主要用于远程登录和管理Linux系统,相较于传统的Telnet、FTP等协议,SSH通过加密传输数据和身份验证机制,确保了通信的安全性和数据完整性,已成为Linux系统管理员进行远程运维的首选工具,本文将详细介绍在Linux系统中安装、配置及使用SSH服务的完整流程。

检查系统是否已安装SSH服务
在开始安装前,需先确认系统中是否已安装SSH服务,不同Linux发行版的默认包管理器不同,可通过以下命令检查:
-
基于Debian/Ubuntu的系统:
dpkg -l | grep openssh-server
若输出中包含
openssh-server且状态为ii(已安装),则说明SSH服务已安装。 -
基于RHEL/CentOS的系统:
rpm -qa | grep openssh-server
若返回结果包含
openssh-server包名,则已安装。
若未安装或需要重新安装,可根据系统类型选择对应的方法进行安装。
安装SSH服务
基于Debian/Ubuntu的系统
Debian和Ubuntu系统使用apt包管理器安装SSH服务,步骤如下:

- 更新软件包列表:
sudo apt update
- 安装OpenSSH服务器:
sudo apt install openssh-server
- 安装过程中,系统会提示确认安装,输入
Y并按回车键即可。
基于RHEL/CentOS的系统
RHEL和CentOS系统使用yum或dnf包管理器(CentOS 8+使用dnf):
- 对于CentOS 7及以下版本:
sudo yum install openssh-server
- 对于CentOS 8+或RHEL 8+:
sudo dnf install openssh-server
- 安装完成后,可通过以下命令验证安装是否成功:
sshd -v
若输出显示OpenSSH的版本信息,则表示安装成功。
配置SSH服务
安装完成后,需对SSH服务进行基本配置以满足安全和管理需求,配置文件位于/etc/ssh/sshd_config,使用文本编辑器(如vim或nano)打开:
sudo vim /etc/ssh/sshd_config
常用配置项说明
- 监听端口:默认为22,可修改为其他端口(如2222)以降低被扫描的风险:
Port 2222
- 允许root登录:出于安全考虑,建议禁止root直接登录,改为普通用户登录后切换:
PermitRootLogin no
- 密码认证:可禁用密码认证,改用密钥认证(更安全):
PasswordAuthentication no
- 允许的用户:限制仅特定用户可登录:
AllowUsers user1 user2
保存配置并重启服务
配置完成后,保存文件并退出编辑器,重启SSH服务使配置生效:
- 基于Debian/Ubuntu的系统:
sudo systemctl restart sshd
- 基于RHEL/CentOS的系统:
sudo systemctl restart sshd
启动并设置SSH服务开机自启
为确保SSH服务在系统重启后自动启动,需启用开机自启:
sudo systemctl enable sshd
检查服务状态
通过以下命令查看SSH服务运行状态:
sudo systemctl status sshd
若输出显示active (running),则表示服务已正常运行。

防火墙配置
SSH服务默认监听22端口(或自定义端口),需确保防火墙允许该端口的流量通过。
基于Ubuntu的UFW防火墙
sudo ufw allow 22/tcp # 允许22端口(若修改为其他端口,替换为对应端口) sudo ufw reload # 重启防火墙使配置生效
基于CentOS/RHEL的firewalld防火墙
sudo firewall-cmd --permanent --add-service=ssh # 允许SSH服务默认端口 sudo firewall-cmd --permanent --add-port=2222/tcp # 若使用自定义端口,需手动添加 sudo firewall-cmd --reload # 重启防火墙
SSH客户端连接
配置完成后,可通过SSH客户端连接到远程服务器,常用命令如下:
- 基本连接(默认端口22):
ssh username@server_ip
- 指定端口连接(如端口2222):
ssh -p 2222 username@server_ip
首次连接时,系统会提示确认主机密钥,输入
yes即可进入登录界面。
常见问题排查
连接被拒绝
- 检查SSH服务是否运行:
sudo systemctl status sshd - 确认防火墙是否放行端口:
sudo ufw status或sudo firewall-cmd --list-all - 检查配置文件语法:
sudo sshd -t
无法root登录
- 确认
/etc/ssh/sshd_config中PermitRootLogin设置为yes或通过普通用户登录后切换。
密钥认证失败
- 检查客户端密钥是否正确上传至服务器
~/.ssh/authorized_keys文件,并设置权限为600。
通过以上步骤,即可完成Linux系统中SSH服务的安装、配置与使用,SSH服务的高安全性使其成为远程管理的核心工具,合理配置可进一步提升系统运维的安全性和效率。


















