在 Ubuntu 上使用 SSH:安全远程访问、安装与最佳实践

1. 什么是 SSH?如何在 Ubuntu 上使用它

SSH(Secure Shell)是一种协议,允许您安全地远程连接并操作服务器。在 Ubuntu 等 Linux 系统中,SSH 是系统管理必不可少的命令行工具。使用 SSH 可以对与服务器的通信进行加密,防止未经授权的访问和第三方的窃听。

相关链接What is SSH? Official Ubuntu Documentation

2. 如何在 Ubuntu 上安装 SSH

以下是在 Ubuntu 上安装并设置 SSH 服务器以实现安全连接的步骤。

  1. 更新软件包列表
    sudo apt update
    
  1. 安装 OpenSSH 服务器
    sudo apt install openssh-server
    
  1. 启动服务并检查其状态
    sudo systemctl status ssh
    

注意:有关更多信息,请参阅 Ubuntu 的 OpenSSH 详细文档

3. 检查 SSH 服务状态并在启动时启用它

确认 SSH 正常运行,并将其配置为系统启动时自动启动。

  1. 检查 SSH 服务状态
    sudo systemctl status ssh
    
  1. 启用 SSH 开机自启
    sudo systemctl enable ssh
    

4. 通过防火墙允许 SSH

使用 Ubuntu 自带的 UFW(Uncomplicated Firewall)来允许 SSH 连接。

  1. 在防火墙中允许 SSH
    sudo ufw allow ssh
    
  1. 检查 UFW 状态
    sudo ufw status
    

5. 如何连接到 Ubuntu SSH 服务器

按照以下步骤远程连接到您的 Ubuntu SSH 服务器。

  1. 检查您的 IP 地址
    ip a
    
  1. 通过 SSH 进行连接
    ssh username@ip_address
    

如果在首次连接时出现警告,输入 “yes” 并继续,随后输入您的密码。

提示:Windows 用户可以使用 PuTTY 等软件通过 SSH 进行连接。

6. 高级 SSH 配置(更改端口、禁用 root 登录)

修改默认的 SSH 设置以提升安全性。

  1. 更改默认端口 : 将默认端口 22 改为其他端口可以降低暴力破解攻击的风险。
    sudo nano /etc/ssh/sshd_config
    #Port 22 → change to your preferred port number
    
  1. 禁用 root 登录 : 为了增强安全性,禁用 root 用户的登录。
    PermitRootLogin no
    

更改完成后,重新启动 SSH 服务。

sudo systemctl restart ssh

7. SSH 服务器安全加固(最佳实践)

以下是进一步保护 SSH 服务器的一些最佳实践。

  1. 使用 SSH 密钥认证 : 用公钥认证替代密码认证,以获得更高的安全性。详情请参阅 SSH 密钥生成指南
  2. 限制特定用户访问 : 使用 AllowUsers 指令将 SSH 访问限制在特定账户上。
  3. 使用 Fail2Ban 防止暴力破解 : 安装 Fail2Ban 自动阻止重复的登录失败尝试。
    sudo apt install fail2ban
    

有关详细的设置说明,请参考官方的 Fail2Ban 配置指南

8. 常见 SSH 连接故障排除

如果遇到连接问题,请检查以下事项:

  • 防火墙配置错误 : 确保 UFW 或其他防火墙已正确配置。
  • IP 地址不正确 : 再次确认服务器的 IP 地址。
  • SSH 配置文件错误 : 检查 /etc/ssh/sshd_config 是否有错误,并在必要时重新启动服务。

结论

本指南阐述了在 Ubuntu 上安装、配置和加固 SSH 的方法。遵循这些最佳实践可提升安全性并高效管理服务器。欲了解更多细节,请参阅 官方 Ubuntu SSH 设置指南