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

Ubuntu16.04下SSH用-i可连EC2,-F指定配置文件失败求助

问题分析与解决办法

你的核心问题是SSH配置文件里用错了指令,导致SSH没有正确加载你的EC2私钥文件,进而出现Permission denied (publickey)错误。

错误原因

你在配置里写了CertificateFile ~/Desktop/ssh_keys/prod.pem,但这个指令是用来指定SSH证书文件的,而你手里的prod.pem是EC2实例的私钥文件,应该用IdentityFile指令来指定私钥路径。

修正后的配置文件

把你的scp_config改成下面这样:

Host prod
HostName ***.***.***.***
User ec2-user
IdentityFile ~/Desktop/ssh_keys/prod.pem

额外注意事项

  1. 私钥文件权限必须正确:SSH对私钥文件的权限要求很严格,必须设置为600(只有你自己能读写),否则会被拒绝使用。执行以下命令修复权限:
    chmod 600 ~/Desktop/ssh_keys/prod.pem
    
  2. 避免用sudo执行ssh/scp:从调试日志里的permanently_set_uid: 0/0可以看出,你可能用sudo运行了命令,这时候~会指向root的家目录,而不是你的用户目录,导致私钥路径找不到。如果必须用sudo,把配置里的路径换成绝对路径(比如/home/你的用户名/Desktop/ssh_keys/prod.pem)。

验证方法

修改完成后,执行以下命令测试连接:

ssh -F ~/Desktop/ssh_keys/scp_config prod

如果要传输文件,使用scp的命令格式如下:

# 本地文件传到远程服务器
scp -F ~/Desktop/ssh_keys/scp_config /本地文件路径 prod:/远程服务器路径

# 远程服务器文件传到本地
scp -F ~/Desktop/ssh_keys/scp_config prod:/远程文件路径 /本地保存路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:23:10