You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hetzner Cloud服务器SSH连接权限莫名丢失问题求助

解决Hetzner Cloud SSH公钥登录权限被拒的排查步骤

以下是针对「初始SSH登录正常,几天后突然出现Permission denied (publickey)」问题的排查和解决方法:

  • 确认服务器IP未变更
    登录Hetzner Cloud控制台,检查服务器当前的公网IP是否和你使用的MY_IP一致。部分情况下IP可能因平台调整或服务器重置发生变化,替换正确IP后重试。

  • 检查本地密钥文件权限
    SSH对密钥文件权限要求严格,即使你未主动修改,系统操作也可能意外改动权限:

    1. 查看私钥权限:ls -l ~/.ssh/id_rsa,正常权限应为-rw-------(即600)
    2. 查看.ssh目录权限:ls -ld ~/.ssh,正常权限应为drwx------(即700)
    3. 权限错误时执行修正命令:
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/id_rsa
      
  • 验证服务器端authorized_keys配置
    通过Hetzner控制台的VNC功能登录服务器,检查以下内容:

    1. 查看/root/.ssh/authorized_keys文件,确认其中包含你本地公钥(~/.ssh/id_rsa.pub)的完整内容,无多余换行或字符
    2. 检查文件及目录权限:
      ls -l /root/.ssh/authorized_keys  # 权限应为-rw-------(600)
      ls -ld /root/.ssh                 # 权限应为drwx------(700)
      
    3. 权限错误时执行修正命令:
      chmod 700 /root/.ssh
      chmod 600 /root/.ssh/authorized_keys
      
    4. 如果公钥丢失,将本地公钥内容重新粘贴到authorized_keys文件中
  • 检查SSH服务配置
    系统更新可能导致sshd配置变更,登录VNC后检查/etc/ssh/sshd_config的关键参数:

    1. 确保PubkeyAuthentication yes(开启公钥认证)
    2. 确保PermitRootLogin yes或PermitRootLogin without-password(允许root用户通过公钥登录)
    3. 修改配置后重启SSH服务:systemctl restart sshd
  • 排查防火墙/安全组规则

    1. 登录Hetzner Cloud控制台,检查Cloud Firewall规则,确认允许22端口的入站流量
    2. 服务器本地防火墙(如ufw、iptables)检查:
      • ufw:执行ufw status,确认22/tcp规则为ALLOW
      • iptables:执行iptables -L -n,确认存在ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22类的规则
  • 重置本地known_hosts记录
    若服务器主机密钥变更(如IP被重新分配、服务器重装),本地known_hosts会标记该IP为不安全:
    执行命令移除旧记录:ssh-keygen -R MY_IP,之后重新尝试登录,按提示确认新主机密钥即可

内容的提问来源于stack exchange,提问作者Mista K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:01:11