Linux 开启 SSH 服务详解
SSH(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络中为网络服务提供安全的传输环境,Linux 系统中,SSH 服务是远程管理和服务器运维的重要工具,本文将详细介绍如何在 Linux 系统中开启 SSH 服务,包括安装、配置、启动及安全优化等步骤,帮助用户快速搭建安全可靠的远程连接环境。

检查系统是否已安装 SSH 服务
在开启 SSH 服务前,首先需要确认系统是否已安装 SSH 相关软件包,以主流的 Debian/Ubuntu 和 CentOS/RHEL 系统为例,可通过以下命令检查:
-
Debian/Ubuntu 系统:
dpkg -l | grep openssh-server
若输出结果包含
openssh-server,则表示已安装;若未安装,可通过以下命令安装:sudo apt update && sudo apt install openssh-server -y
-
CentOS/RHEL 系统:
rpm -qa | grep openssh-server
若未安装,使用以下命令安装:
sudo yum install openssh-server -y
安装完成后,SSH 服务默认不会自动启动,需要手动开启并配置。
启动并启用 SSH 服务
安装完成后,可通过以下命令启动 SSH 服务并设置为开机自启:
-
启动 SSH 服务:
sudo systemctl start sshd
-
设置开机自启:
sudo systemctl enable sshd
-
检查服务状态:
sudo systemctl status sshd
若输出显示
active (running),则表示服务已成功启动。
配置 SSH 服务
SSH 服务的配置文件位于 /etc/ssh/sshd_config,通过修改该文件可以调整 SSH 的各项参数,如端口、登录方式、用户权限等,以下是常用配置项及说明:
修改默认端口(安全建议)
默认情况下,SSH 服务监听 22 端口,为提高安全性,可修改为其他端口(如 2222):
sudo vim /etc/ssh/sshd_config
找到 Port 22 一行,将其修改为 Port 2222,保存并退出。
禁用 root 用户直接登录
出于安全考虑,建议禁止 root 用户直接通过 SSH 登录,需通过普通用户登录后再切换至 root:
PermitRootLogin no
限制允许登录的用户
在配置文件中添加以下行,仅允许特定用户(如 user1 和 user2)登录:
AllowUsers user1 user2
启用密钥认证,禁用密码登录
为增强安全性,建议使用 SSH 密钥对进行身份验证,并禁用密码登录:
PasswordAuthentication no PubkeyAuthentication yes
配置完成后,需重启 SSH 服务使配置生效:
sudo systemctl restart sshd
配置防火墙规则
为确保 SSH 服务可被外部访问,需开放对应的端口(如默认的 22 端口或自定义的 2222 端口):
-
Ubuntu 系统使用 UFW 防火墙:
sudo ufw allow 22/tcp sudo ufw reload
-
CentOS/RHEL 系统使用 firewalld:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
SSH 客户端连接测试
配置完成后,可通过 SSH 客户端工具连接服务器,以 Linux/macOS 终端为例,命令格式如下:

ssh username@server_ip -p port
ssh user1@192.168.1.100 -p 2222
首次连接时,系统会提示保存服务器的密钥指纹,输入 yes 即可,若配置了密钥认证,需将本地公钥(~/.ssh/id_rsa.pub)上传至服务器的 ~/.ssh/authorized_keys 文件中。
SSH 服务安全优化建议
为进一步提升 SSH 服务的安全性,建议采取以下措施:
定期更新 SSH 软件
保持系统和 SSH 软件包为最新版本,及时修复安全漏洞:
# Debian/Ubuntu sudo apt update && sudo apt upgrade openssh-server # CentOS/RHEL sudo yum update openssh-server
使用 fail2ban 防暴力破解
安装 fail2ban 工具,自动封禁频繁尝试登录的恶意 IP:
# Debian/Ubuntu sudo apt install fail2ban -y # CentOS/RHEL sudo yum install fail2ban -y
配置 /etc/fail2ban/jail.local 文件,启用 SSH 防护规则。
禁用空密码和弱密码
确保所有用户设置强密码,并在配置文件中添加以下行禁用空密码:
PermitEmptyPasswords no
限制登录尝试次数
在 /etc/ssh/sshd_config 中添加以下参数,限制登录失败次数:
MaxAuthTries 3
常见问题排查
连接被拒绝或超时
- 检查 SSH 服务是否运行:
sudo systemctl status sshd - 确认防火墙是否开放端口:
sudo ufw status或sudo firewall-cmd --list-ports - 查看日志文件
/var/log/auth.log(Ubuntu)或/var/log/secure(CentOS)定位错误原因。
权限问题导致密钥认证失败
确保服务器端 ~/.ssh 目录权限为 700,authorized_keys 文件权限为 600:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
通过本文的介绍,用户已掌握在 Linux 系统中开启、配置及优化 SSH 服务的完整流程,SSH 服务作为远程管理的核心工具,其安全性至关重要,建议用户在实际操作中严格遵循安全规范,定期更新和维护配置,确保服务器远程连接的稳定与安全,无论是个人开发者还是企业运维,熟练掌握 SSH 服务的管理都能显著提升工作效率和系统安全性。















