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

Oracle Cloud Ubuntu实例SFTP公钥认证失败求助(SSH可正常连接)

SFTP公钥认证失败解决思路(Oracle Cloud Ubuntu实例)
  • 先核对SFTP命令的核心参数:-i后面要跟私钥文件(比如id_rsa),不是公钥(id_rsa.pub)。你SSH能连是因为默认调用了~/.ssh下的私钥,而SFTP指定路径时很容易搞混公私钥,先确认这点。

  • 严格检查私钥文件权限:Linux对私钥权限要求极高,必须设为600(仅自己可读可写),否则SSH客户端会直接拒绝使用。执行命令修正:

    chmod 600 /path/to/your/private_key
    

    同时私钥所在的.ssh目录权限要设为700:

    chmod 700 ~/.ssh
    
  • 登录服务器检查sshd配置:打开/etc/ssh/sshd_config,确认以下配置:

    • PubkeyAuthentication yes(必须开启公钥认证)
    • Subsystem sftp /usr/lib/openssh/sftp-server(SFTP子系统路径正确)
    • 没有针对目标用户的Match规则限制公钥认证
      修改后重启sshd:
    sudo systemctl restart sshd
    
  • 用调试模式看详细错误:本地执行带-v参数的SFTP命令,能看到密钥加载、认证的全过程,方便定位具体哪一步出问题:

    sftp -v -i /path/to/private_key username@public_ip
    
  • 检查服务器端用户的密钥文件权限:登录服务器后,确保目标用户的~/.ssh目录权限是700,authorized_keys文件权限是600,同时确认文件里的公钥和你本地私钥对应的公钥完全一致,没有多余字符或换行:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  • 最后确认Oracle Cloud安全列表:虽然SSH能连,但还是检查下安全列表是否允许TCP 22端口的入站流量(默认是允许的,不过排除下这个可能)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:25:24