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

Ubuntu服务器RSA密钥SSH认证失败求助:权限拒绝问题

解决Ubuntu 16.04.3 SSH RSA密钥认证权限拒绝问题

我来帮你搞定这个折腾了4-5小时的问题!你遇到的/.ssh/authorized_keys: Permission denied错误,其实很多时候是容易忽略的细节导致的,咱们一步步来排查:

1. 先确认authorized_keys的路径是否正确

你报错里写的是/.ssh/authorized_keys——这是根目录下的文件,而SSH默认读取的是当前登录用户家目录下的~/.ssh/authorized_keys(比如/home/你的用户名/.ssh/authorized_keys)。

  • 先检查家目录下的密钥文件是否存在:
    ls -l ~/.ssh/authorized_keys
    
  • 如果根目录下误创建了.ssh文件夹,直接删掉它:
    sudo rm -rf /.ssh
    

2. 检查用户家目录的权限

SSH对用户家目录的权限要求很严格,不能太开放(比如777),否则会拒绝密钥认证。

  • 查看家目录权限:
    ls -ld ~/
    
  • 如果权限不是755或700,修改它:
    chmod 755 ~/
    

3. 确认.ssh文件夹和authorized_keys的所有者

这是另一个高频坑:如果.ssh或authorized_keys的所有者是root,而非你登录的用户,SSH会直接拒绝读取。

  • 查看所有者信息:
    ls -l ~/.ssh/
    
  • 如果所有者不是你的用户名,修改它:
    chown -R 你的用户名:你的用户名 ~/.ssh/
    
    (把你的用户名替换成实际的登录用户名,比如ubuntu)

4. 检查SSH服务器配置是否允许密钥认证

有时候重装系统后,SSH配置可能默认关闭了公钥认证:

  • 打开SSH配置文件:
    sudo nano /etc/ssh/sshd_config
    
  • 找到并确保以下配置项是开启的:
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2
    # 暂时保留PasswordAuthentication yes,等配置成功后再改成no,方便调试
    PasswordAuthentication yes
    
  • 重启SSH服务生效:
    sudo systemctl restart sshd
    

5. 验证Puttygen生成的公钥格式

确保你粘贴到authorized_keys里的是完整的公钥内容:

  • 格式必须是一行到底:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...(完整长字符串)... 你的注释
  • 不要把公钥拆成多行,也不要有多余的空行(除非你要添加多个密钥)

6. 用verbose模式获取更详细的错误信息

如果以上步骤都试过还是不行,用Putty的日志功能或者命令行的verbose模式看具体错误:

  • Putty里:左侧导航到Connection > SSH > Logging,选择Log all session output,连接后查看日志里的权限细节
  • 命令行(如果有其他Linux机器):
    ssh -v 你的用户名@服务器IP
    
    输出里会明确告诉你是哪个文件的权限或路径出了问题

按照这些步骤排查下来,应该能解决你的问题——毕竟你已经设置了.ssh和authorized_keys的权限,大概率是路径、所有者或家目录权限的问题。

内容的提问来源于stack exchange,提问作者FredS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:26:06