作者信息:https://home.cnblogs.com/u/huangjiabobk

在Linux中,如何配置SSH以确保远程连接的安全?

在 Linux 中,可以通过以下步骤配置 SSH 以确保远程连接的安全:

  1. 更新 SSH 软件包:
    首先,确保已安装最新版本的 OpenSSH 软件包。在终端中运行以下命令来更新软件包:

    sudo apt-get update
    sudo apt-get upgrade openssh-server
    
  2. 修改 SSH 端口:
    默认情况下,SSH 服务器使用端口 22。为了提高安全性,建议将 SSH 端口更改为其他非标准端口。编辑 /etc/ssh/sshd_config 文件,找到 Port 行并将其更改为其他端口号(例如:4321):

    sudo nano /etc/ssh/sshd_config
    

    找到并更改以下行:

    Port 4321
    

    保存并退出文件。然后重启 SSH 服务以应用更改:

    sudo systemctl restart ssh
    
  3. 禁用 root 用户远程登录:
    为了提高安全性,建议禁用 root 用户通过 SSH 进行远程登录。编辑 /etc/ssh/sshd_config 文件,找到 PermitRootLogin 行并将其设置为 no

    sudo nano /etc/ssh/sshd_config
    

    找到并更改以下行:

    PermitRootLogin no
    

    保存并退出文件。然后重启 SSH 服务以应用更改:

    sudo systemctl restart ssh
    
  4. 启用公钥认证:
    公钥认证是一种更安全的身份验证方法,可以替代密码认证。首先,在本地计算机上生成 SSH 密钥对(如果尚未生成):

    ssh-keygen -t rsa
    

    然后,将公钥上传到远程服务器的 ~/.ssh/authorized_keys 文件中:

    ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
    

    其中,user 是远程服务器上的用户名,remote_host 是远程服务器的 IP 地址或域名。

  5. 禁用密码认证:
    为了强制使用公钥认证,可以禁用密码认证。编辑 /etc/ssh/sshd_config 文件,找到 PasswordAuthentication 行并将其设置为 no

    sudo nano /etc/ssh/sshd_config
    

    找到并更改以下行:

    PasswordAuthentication no
    

    保存并退出文件。然后重启 SSH 服务以应用更改:

    sudo systemctl restart ssh
    
  6. 配置防火墙规则:
    如果服务器上运行了防火墙(如 UFW 或 Firewalld),请确保允许新的 SSH 端口的流量通过。例如,对于 UFW,可以使用以下命令:

    sudo ufw allow 4321
    
  7. 定期检查和更新:
    定期检查 SSH 配置文件和日志文件,确保没有异常活动。同时,保持系统和软件包的更新,以防止潜在的安全漏洞。

综上所述,你可以配置SSH以确保远程连接的安全。记住,安全性是一个持续的过程,需要定期审查和更新以应对新的威胁和漏洞。

posted @ 2024-04-08 10:57  黄嘉波  阅读(68)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波