近日,不少Hetzner云服务器用户反馈在初始配置或安全审计中遇到root密码重置与SSH密钥添加的实操困惑。作为欧洲领先的托管与云服务商,Hetzner默认提供的服务器需用户自行完成基础安全加固。本文将为读者详细拆解这两项关键操作的具体步骤,助力提升服务器访问安全等级。

一、更改root密码的两种路径

Hetzner服务器在首次部署时通常会通过邮件发送临时root密码,但建议用户立即修改。操作可通过两种方式实现:

方法1:SSH命令行修改(适用于已登录状态)

登录服务器后,执行 passwd 命令,系统会提示输入当前密码及新密码(两次确认)。需注意的是,新密码应包含大小写字母、数字及特殊字符,长度不少于12位。修改成功后,可通过 su - 测试切换。

方法2:Hetzner Rescue系统重置(适用于遗忘密码或无法登录)

若用户无法通过SSH访问,需利用Hetzner控制面板的“救援系统”功能: 1. 登录 Hetzner Robot 或 Cloud Console; 2. 选择目标服务器,在“救援”选项中启用救援模式并设置临时root密码; 3. 重启服务器后,通过SSH使用临时密码登录救援系统; 4. 挂载原系统分区(通常为 /dev/sda1/dev/nvme0n1p1),执行 chroot /mnt 进入原系统环境; 5. 运行 passwd 修改密码,完成后退出并重启服务器。

安全提示:建议立即禁用密码登录,改用SSH密钥认证,以杜绝暴力破解风险。

二、添加SSH密钥的详细流程

SSH密钥对采用非对称加密,相比密码更安全且可免密登录。以下为在Hetzner服务器上添加公钥的标准步骤:

步骤1:生成密钥对(本地客户端)

在本地终端(Linux/macOS)或使用PuTTYgen(Windows)执行:

ssh-keygen -t ed25519 -C "your_email@example.com"

建议选择ED25519算法(更高效安全),或RSA 4096位。生成的公钥位于 ~/.ssh/id_ed25519.pub,私钥为 id_ed25519,需妥善保管。

步骤2:将公钥添加至服务器

方式一:手动写入(适用于已有SSH访问) 将公钥内容追加至服务器 ~/.ssh/authorized_keys 文件:

echo "公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

方式二:使用ssh-copy-id工具

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@服务器IP

方式三:Hetzner控制台一键注入(推荐) 在Hetzner Robot或Cloud Console中,选择服务器“设置”->“SSH密钥”,可预先添加公钥。此方法在服务器部署时自动注入,无需后续操作。对于已运行的服务器,可在救援模式下挂载系统后,手动修改 /root/.ssh/authorized_keys

步骤3:测试并禁用密码登录

使用私钥登录成功后,编辑 /etc/ssh/sshd_config,修改以下参数:

PasswordAuthentication no
PubkeyAuthentication yes

重启SSH服务 systemctl restart sshd。注意:务必先在另一终端保留密码登录会话,以防配置错误导致锁定。

三、常见问题与避坑指南

  • 权限错误authorized_keys 文件及 .ssh 目录所有权必须为 root:root(或对应用户),权限设置不当会导致密钥认证失败。
  • 救援系统挂载:若使用Hetzner专用救援系统,需确认挂载点命令:mount /dev/sda1 /mnt,部分NVMe设备为 /dev/nvme0n1p1,可通过 lsblk 确认。
  • 密钥格式:Hetzner控制台仅支持OpenSSH格式公钥,PuTTYgen生成的需转换为 .pub 格式。

四、安全建议总结

Hetzner作为全球知名基础设施提供商,其服务器默认配置已具备基础防护,但用户仍需主动加固。建议: - 立即修改默认root密码并启用SSH密钥; - 考虑创建普通用户并赋予sudo权限,减少直接使用root; - 配置fail2ban或防火墙(如UFW)限制SSH访问IP; - 定期审计 /var/log/auth.log 日志。

通过以上操作,用户可显著降低服务器被入侵风险,确保业务数据安全。若操作中遇到任何异常,可随时参考Hetzner官方文档或提交工单获取技术支持。