尝试SSH连接CircleCI作业时遇Permission denied (publickey)错误求助
解决SSH连接Permission denied (publickey)问题
核心问题排查与修复
密钥文件不匹配:你用
ssh-keygen -m PEM -t rsa -C "myname@myemail.com"生成的是RSA密钥,对应的公钥文件是.ssh/id_rsa.pub,但你复制的是.ssh/id_ed25519的内容——这两个是完全独立的密钥对,CircleCI用错密钥自然无法通过认证。
修复:重新复制.ssh/id_rsa.pub的完整内容,替换CircleCI项目设置里的额外SSH密钥。目标服务器公钥未配置:确保你生成的RSA公钥已添加到目标服务器
x.x.x.130上myname用户的~/.ssh/authorized_keys文件中,同时修正文件权限:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys连接时显式指定密钥:如果本地存在多个SSH密钥,连接时可以强制使用生成的RSA密钥:
ssh ssh -i ~/.ssh/id_rsa -p 54782 myname@x.x.x.130
额外检查项
- 确认CircleCI项目中配置的SSH公钥开头为
ssh-rsa,没有多余换行或格式错误。 - 检查目标服务器的
/etc/ssh/sshd_config配置,确保PubkeyAuthentication yes已启用,且未限制myname用户的公钥登录权限。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

