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

AWS Ubuntu实例SSH连接报错Permission denied的解决办法咨询

AWS Ubuntu实例VS Code SSH连接Permission Denied问题排查与解决

问题背景

在AWS创建Ubuntu实例并下载对应的.pem私钥文件后,通过VS Code的SSH功能连接时出现报错:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

使用的.ssh/config配置如下:

Host AWS
    HostName 13.125.226.*** 
    IdentityFile /Users/你的本地绝对路径/xxx.pem
    User ubuntu

同时在Mac上直接打开该.pem文件时,弹出“An error has occurred. Unable to import items.”提示,需确认该提示的作用及解决连接问题的方法。

可行解决办法

  • 修正.pem文件权限:Mac/Linux系统对SSH私钥文件的权限有严格要求,权限过宽会被SSH客户端拒绝。执行以下命令设置正确权限:

    chmod 400 /Users/你的路径/xxx.pem
    

    确保文件仅当前用户可读,其他用户无任何操作权限。

  • 验证密钥文件路径:检查IdentityFile后的绝对路径是否完全正确,包括文件名的拼写、大小写(Mac系统区分文件名大小写)。可通过终端执行ls /Users/你的路径/xxx.pem确认文件是否存在。

  • 检查安全组入站规则:登录AWS控制台,进入实例对应的安全组,确认入站规则允许SSH(22端口)从你的本地IP访问。若暂时无法确定本地IP,可临时将来源设置为0.0.0.0/0(仅测试使用,长期需限制为指定IP)。

  • 确认密钥对与实例关联:在AWS控制台查看实例详情,确认实例使用的密钥对和你下载的.pem文件属于同一组。如果不匹配,需重新创建密钥对并关联到实例,或者手动将新密钥的公钥添加到实例的~/.ssh/authorized_keys文件中。

  • 终端直接测试SSH连接:先排除VS Code的问题,直接在终端执行原生SSH命令测试:

    ssh -i /Users/你的路径/xxx.pem ubuntu@13.125.226.***
    

    如果终端能成功连接但VS Code不行,检查VS Code的SSH扩展设置,比如是否启用了代理、是否正确加载了.ssh/config配置。

  • 验证实例内authorized_keys文件:若上述步骤都无效,可通过AWS控制台的实例连接功能登录Ubuntu实例,查看~/.ssh/authorized_keys文件内容,确认其中包含当前.pem文件对应的公钥。公钥可通过本地终端执行ssh-keygen -y -f /Users/你的路径/xxx.pem生成,对比实例内的内容是否一致。

关于Mac打开.pem文件的报错提示

这个提示无实际帮助,因为Mac的钥匙串访问程序会将.pem文件误认为证书格式尝试导入,但.pem是SSH私钥文件,并非证书,所以导入失败是正常现象,和SSH连接失败的问题没有关联,无需关注。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:45:45