Ubuntu 作为一款广泛使用的开源操作系统,其 SSH 服务器功能为用户提供了安全、高效的远程管理方式,通过 SSH(Secure Shell),用户可以在本地计算机上加密连接到 Ubuntu 服务器,执行命令、传输文件和管理系统,无需直接操作物理设备,极大地简化了服务器管理和远程工作的流程,本文将详细介绍 Ubuntu SSH 服务器的安装、配置、安全优化及常见问题解决方法,帮助用户全面掌握这一实用工具。

安装 SSH 服务器
在 Ubuntu 系统中,SSH 服务器通常通过 OpenSSH 软件包实现,默认情况下,Ubuntu 桌面版可能未预装 SSH 服务器,而服务器版通常会预装,若需手动安装,可通过以下步骤完成:
-
更新系统包列表
在终端中执行以下命令,确保系统包列表为最新状态:sudo apt update
-
安装 OpenSSH 服务器
使用apt命令安装 OpenSSH 服务器软件包:sudo apt install openssh-server
安装过程中,系统会自动启动 SSH 服务,并设置为开机自启。
(图片来源网络,侵删) -
验证服务状态
安装完成后,可通过以下命令检查 SSH 服务是否正常运行:sudo systemctl status ssh
若输出显示
active (running),则表示服务已成功启动。
配置 SSH 服务器
安装完成后,用户可根据需求修改 SSH 服务的默认配置文件,主要配置文件位于 /etc/ssh/sshd_config,建议在修改前先备份原始文件:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
使用文本编辑器(如 nano 或 vim)打开配置文件:

sudo nano /etc/ssh/sshd_config
以下为常用配置项及其说明:
| 配置项 | 默认值 | 说明 |
|---|---|---|
Port |
22 | SSH 服务监听端口,建议修改为非默认端口以提高安全性 |
PermitRootLogin |
prohibit-password |
是否允许 root 用户直接登录,建议设为 no 强制使用普通用户 |
PasswordAuthentication |
yes |
是否启用密码认证,若使用密钥认证可设为 no |
PubkeyAuthentication |
yes |
是否启用公钥认证,推荐开启以提高安全性 |
AllowUsers |
无限制 | 限制允许登录的用户列表,格式如 AllowUsers user1 user2 |
修改配置后,保存文件并重启 SSH 服务使配置生效:
sudo systemctl restart ssh
SSH 安全优化
为确保 SSH 服务器安全,建议采取以下优化措施:
-
修改默认端口
编辑sshd_config文件,将Port修改为非 22 的端口(如 2222),并重启服务,此举可减少自动化攻击工具的扫描频率。 -
禁用 root 直接登录
在配置文件中设置PermitRootLogin no,强制 root 用户通过普通用户账号登录后切换,降低密码暴力破解风险。 -
启用密钥认证
生成 SSH 密钥对(本地执行ssh-keygen),将公钥(~/.ssh/id_rsa.pub)上传到服务器的~/.ssh/authorized_keys文件中,并禁用密码认证:sudo echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." >> ~/.ssh/authorized_keys sudo chmod 600 ~/.ssh/authorized_keys sudo nano /etc/ssh/sshd_config # 设置 PasswordAuthentication no sudo systemctl restart ssh
-
配置防火墙规则
若使用 UFW 防火墙,允许 SSH 端口访问:sudo ufw allow 2222/tcp # 替换为自定义端口 sudo ufw enable
-
定期更新系统
保持 Ubuntu 系统及 OpenSSH 软件包为最新版本,及时修复安全漏洞:sudo apt update && sudo apt upgrade
常见问题解决
-
连接被拒绝或超时
- 检查 SSH 服务是否运行:
sudo systemctl status ssh - 确认防火墙是否允许端口访问:
sudo ufw status - 检查配置文件语法错误:
sudo sshd -t
- 检查 SSH 服务是否运行:
-
密码认证失败
- 确认用户名和密码正确,检查
/var/log/auth.log查看详细错误信息 - 若启用密钥认证后密码失效,确认
PasswordAuthentication是否被误设为no
- 确认用户名和密码正确,检查
相关问答 FAQs
Q1: 如何在 Ubuntu 中禁止特定用户通过 SSH 登录?
A: 在 /etc/ssh/sshd_config 文件中添加 DenyUsers 配置项,后跟用户名列表,DenyUsers user1 user3,保存后重启 SSH 服务即可禁止指定用户登录。
Q2: 如何更改 SSH 服务的默认监听地址?
A: 编辑 sshd_config 文件,添加或修改 ListenAddress 配置项,指定 IP 地址或 0.0.0(监听所有接口),ListenAddress 192.168.1.100,重启服务后生效。
