凌峰创科服务平台

Ubuntu SSH服务器怎么配置?

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

Ubuntu SSH服务器怎么配置?-图1
(图片来源网络,侵删)

安装 SSH 服务器

在 Ubuntu 系统中,SSH 服务器通常通过 OpenSSH 软件包实现,默认情况下,Ubuntu 桌面版可能未预装 SSH 服务器,而服务器版通常会预装,若需手动安装,可通过以下步骤完成:

  1. 更新系统包列表
    在终端中执行以下命令,确保系统包列表为最新状态:

    sudo apt update
  2. 安装 OpenSSH 服务器
    使用 apt 命令安装 OpenSSH 服务器软件包:

    sudo apt install openssh-server

    安装过程中,系统会自动启动 SSH 服务,并设置为开机自启。

    Ubuntu SSH服务器怎么配置?-图2
    (图片来源网络,侵删)
  3. 验证服务状态
    安装完成后,可通过以下命令检查 SSH 服务是否正常运行:

    sudo systemctl status ssh

    若输出显示 active (running),则表示服务已成功启动。

配置 SSH 服务器

安装完成后,用户可根据需求修改 SSH 服务的默认配置文件,主要配置文件位于 /etc/ssh/sshd_config,建议在修改前先备份原始文件:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

使用文本编辑器(如 nanovim)打开配置文件:

Ubuntu SSH服务器怎么配置?-图3
(图片来源网络,侵删)
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 服务器安全,建议采取以下优化措施:

  1. 修改默认端口
    编辑 sshd_config 文件,将 Port 修改为非 22 的端口(如 2222),并重启服务,此举可减少自动化攻击工具的扫描频率。

  2. 禁用 root 直接登录
    在配置文件中设置 PermitRootLogin no,强制 root 用户通过普通用户账号登录后切换,降低密码暴力破解风险。

  3. 启用密钥认证
    生成 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
  4. 配置防火墙规则
    若使用 UFW 防火墙,允许 SSH 端口访问:

    sudo ufw allow 2222/tcp  # 替换为自定义端口
    sudo ufw enable
  5. 定期更新系统
    保持 Ubuntu 系统及 OpenSSH 软件包为最新版本,及时修复安全漏洞:

    sudo apt update && sudo apt upgrade

常见问题解决

  1. 连接被拒绝或超时

    • 检查 SSH 服务是否运行:sudo systemctl status ssh
    • 确认防火墙是否允许端口访问:sudo ufw status
    • 检查配置文件语法错误:sudo sshd -t
  2. 密码认证失败

    • 确认用户名和密码正确,检查 /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,重启服务后生效。

分享:
扫描分享到社交APP
上一篇
下一篇