安全配置|端口管理|系统调优:vestacp面板下SS端口修改细节解析

  为了提升服务器安全性,我们通常建议更换SSH默认端口,防止暴力破解攻击。常用的办法是在/etc/ssh/sshd_config中将默认的Port 22修改为其他端口,然后重启SSH服务,例如使用命令:/etc/init.d/ssh restart。

  更为稳妥的方案是采用密钥认证取代密码登录,并禁用密码登录。整个流程如下:

  首先,生成一对密钥,并务必妥善保管。以下示例演示了如何在/root/.ssh目录下生成密钥,其中私钥文件为id_rsa,公钥文件为id_rsa.pub:

    ssh-keygen -t rsa

    Generating public/private rsa key pair.

    Enter file in which to save the key (/root/.ssh/id_rsa): (直接回车采用默认路径)

    Created directory ‘/root/.ssh’.

    Enter passphrase (empty for no passphrase): (可输入密码短语,如无需求直接回车)

    Enter same passphrase again:

    Your identification has been saved in /root/.ssh/id_rsa.

    Your public key has been saved in /root/.ssh/id_rsa.pub.

    ……

  接下来,将公钥内容导入到authorized_keys文件中,方法如下:

    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

  之后,修改SSH的配置文件/etc/ssh/sshd_config。找到如下三行内容,将行首的“#”去除后保存修改:

    RSAAuthentication yes

    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys

  保存后,请务必重启SSH服务(例如:/etc/init.d/ssh restart)。

  另外,如果使用Putty进行登录,则需要注意Putty无法直接识别id_rsa文件。这时,可以使用Puttygen工具将密钥转换为PPK格式,转换后会生成一个后缀为.ppk的文件,请妥善保存。使用Xshell等工具时则无需此转换,因为它们能够直接识别id_rsa文件。

  最后,为彻底禁用密码登录,需再次编辑/etc/ssh/sshd_config,将PasswordAuthentication yes更改为PasswordAuthentication no(同样需移除行首的“#”),然后重启SSH服务以应用修改。

  完成这些设置后,通常SSH服务就已进入基于密钥的安全登录模式。但在使用Vestacp面板的用户可能会遇到无法通过密钥进行登录的问题。此时,很可能是因为Vestacp面板中的fail2ban防火墙规则仍在拦截服务器端口。如果未相应调整fail2ban规则,便会导致连接失败。因此,在进行上述密钥认证设置之前,务必先修改fail2ban中的防火墙规则,使之与修改后的SSH端口保持一致。例如,如果将端口号修改为8063,则fail2ban中的规则也应相应调整,确保一致。

  本文内容参考了多个作者的经验整理,希望能为你的服务器安全设置提供帮助。

安全配置|端口管理|系统调优:vestacp面板下SS端口修改细节解析