香港VPS服务器配置SSH实现无密码登录和安全加固

香港VPS服务器上配置 SSH 无密码登录安全加固 是提升服务器安全性和管理效率的重要措施。


一、配置 SSH 无密码登录

1. 生成 SSH 密钥

在本地客户端(如 Mac、Linux 或 Windows 的 WSL/终端)生成 SSH 密钥。

(1) 检查是否已有 SSH 密钥

运行以下命令查看是否已有密钥:

bash
ls ~/.ssh/id_rsa*
 
 
  • 如果已有密钥,可以跳过生成步骤。
  • 如果没有密钥,按照以下步骤生成新密钥。

(2) 生成 SSH 密钥对

运行以下命令生成新的密钥对:

bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
 
 
  • 参数说明:
    • -t rsa:指定密钥类型为 RSA。
    • -b 4096:指定密钥长度为 4096 位(更安全)。
    • -C:添加注释(通常是邮箱地址)。
  • 系统会提示输入密钥文件保存路径:
     
    Enter file in which to save the key (/home/your_user/.ssh/id_rsa):
    
     
     
    • Enter 使用默认路径:~/.ssh/id_rsa
  • 系统会提示设置密码短语(可空,但推荐设置):
     
    Enter passphrase (empty for no passphrase):
    
     
     
    • 若输入密码短语,则登录 VPS 时仍需输入该密码短语。

(3) 查看生成的密钥

生成的密钥包括:

  • 私钥:~/.ssh/id_rsa
  • 公钥:~/.ssh/id_rsa.pub

2. 将公钥复制到香港VPS

将生成的公钥上传到 VPS 的 ~/.ssh/authorized_keys 文件中。

(1) 使用 ssh-copy-id 工具

运行以下命令将公钥复制到 VPS:

bash
ssh-copy-id -i ~/.ssh/id_rsa.pub root@<VPS_IP>
 
 
  • 参数说明:
    • -i:指定要复制的公钥文件。
    • root@<VPS_IP>:用 root 用户登录 VPS 的 IP 地址。

(2) 手动复制公钥

如果没有 ssh-copy-id 工具,可以手动复制公钥:

  1. 查看公钥内容:
    bash
    cat ~/.ssh/id_rsa.pub
    
     
     
  2. 登录 VPS:
    bash
    ssh root@<VPS_IP>
    
     
     
  3. 在 VPS 上创建 .ssh 目录(如果不存在):
    bash
    mkdir -p ~/.ssh && chmod 700 ~/.ssh
    
     
     
  4. 编辑 authorized_keys 文件并粘贴公钥:
    bash
    echo "公钥内容" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
     
     

3. 测试无密码登录

在本地客户端运行以下命令测试无密码登录:

bash
ssh root@<VPS_IP>
 
 
  • 如果能直接登录,说明无密码登录配置成功。

4. 禁用密码登录

为了安全性,可以禁用密码登录,仅允许使用 SSH 密钥登录。

(1) 编辑 SSH 配置文件

在 VPS 上编辑 SSH 配置文件:

bash
sudo nano /etc/ssh/sshd_config
 
 
  • 修改以下配置:
     
    PasswordAuthentication no
    PubkeyAuthentication yes
    
     
     
  • 确保以下配置已启用:
     
    PermitRootLogin prohibit-password # 禁止 root 用户使用密码登录
    
     
     

(2) 重启 SSH 服务

保存文件后重启 SSH 服务:

bash
sudo systemctl restart sshd
 
 

(3) 测试连接

在本地客户端重新测试登录:

bash
ssh root@<VPS_IP>
 
 
  • 如果无密码登录成功,说明配置生效。

二、SSH 安全加固

在配置无密码登录后,还可以通过以下措施加强 SSH 的安全性。


1. 修改 SSH 默认端口

将默认端口从 22 改为其他端口,以减少被扫描的风险。

(1) 编辑 SSH 配置文件

打开 SSH 配置文件:

bash
sudo nano /etc/ssh/sshd_config
 
 
  • 找到以下配置并修改端口号(如 2222):
     
    Port 2222
    
     
     

(2) 修改防火墙规则

确保防火墙允许新端口通过。例如,使用 ufw

bash
sudo ufw allow 2222/tcp
 
 
  • 测试新端口是否可用:
    bash
    ssh -p 2222 root@<VPS_IP>
    
     
     

(3) 重启 SSH 服务

bash
sudo systemctl restart sshd
 
 

2. 禁用 Root 用户登录

为了避免 root 用户被暴力破解,可以禁用其登录,改用普通用户登录后切换到 root。

(1) 编辑 SSH 配置文件

修改以下项:

bash
PermitRootLogin no
 
 

(2) 创建普通用户

  • 添加新用户:
    bash
    adduser your_user
    
     
     
  • 将新用户加入 sudo 组:
    bash
    usermod -aG sudo your_user
    
     
     

(3) 配置无密码登录

为新用户配置 SSH 无密码登录,与上述步骤相同。


3. 使用 Fail2Ban 防止暴力破解

Fail2Ban 是一款防护工具,可自动检测并禁止多次失败的登录尝试。

(1) 安装 Fail2Ban

bash
sudo apt install fail2ban  # Ubuntu/Debian
sudo yum install epel-release && sudo yum install fail2ban  # CentOS
 
 

(2) 配置 Fail2Ban

编辑配置文件:

bash
sudo nano /etc/fail2ban/jail.local
 
 

添加以下内容:

ini
[sshd]
enabled = true
port = 2222   # 如果修改了 SSH 端口,需更新此处
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
 
 

(3) 启动 Fail2Ban

bash
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
 
 

4. 限制 SSH 访问 IP

如果你的 SSH 登录只需要从特定 IP 登录,可以限制登录来源。

(1) 配置防火墙规则

例如使用 ufw

bash
sudo ufw allow from <your_ip> to any port 2222
sudo ufw enable
 
 

(2) 使用 hosts.allowhosts.deny

  • 编辑 /etc/hosts.allow 文件,允许特定 IP:
     
    sshd: <your_ip>
    
     
     
  • 编辑 /etc/hosts.deny 文件,禁止其他 IP:
     
    sshd: ALL
    
     
     

5. 定期更新系统

保持系统和软件更新以修复已知漏洞:

bash
sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
sudo yum update -y                      # CentOS
 
 

6. 启用 SSH 协议版本 2

确保只使用更安全的 SSH 协议版本 2:

bash
Protocol 2
 
 

/etc/ssh/sshd_config 中检查确认。


三、总结

通过以下步骤,您可以在香港VPS服务器上实现无密码登录并加固 SSH 安全性:

  1. 配置 SSH 无密码登录。
  2. 禁用密码登录并限制 Root 用户登录。
  3. 修改默认端口,启用防火墙规则。
  4. 配置 Fail2Ban 防止暴力破解。
  5. 限制访问 IP,确保只有可信客户端能连接。
  6. 定期更新系统,保持安全。

 

通过这些措施,可以显著增强服务器的安全性,降低被攻击的风险。

超过 50,000 人的信任 网硕互联期待你加入我们的会员。