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

Ansible部署时目标主机SSH公钥权限拒绝导致连接不可达求助

Ansible部署时目标主机SSH公钥权限拒绝导致连接不可达求助

我来帮你分析下这个问题,从报错信息里能看到核心问题是kmv@lapp999.corp.com: Permission denied (publickey)——也就是Ansible用kmv用户通过公钥登录目标服务器被拒绝了,咱们一步步排查解决:

  • 先手动验证基础SSH连接:先抛开Ansible,直接在本地终端执行ssh kmv@lapp999.corp.com,看看能不能正常登录。如果手动都连不上,那问题出在SSH本身,不是Ansible的问题;如果手动能连,再继续排查Ansible的配置。
  • 确认Ansible的远程用户配置:检查你的inventory文件或者playbook里,是不是指定了正确的远程用户kmv?比如在inventory里应该是类似lapp999.corp.com ansible_user=kmv,或者在playbook的hosts块里设置remote_user: kmv,别不小心用了其他用户。
  • 检查私钥路径配置:如果你的SSH私钥不是默认的~/.ssh/id_rsa,那得告诉Ansible用哪个私钥。可以在inventory里加ansible_ssh_private_key_file=/path/to/your/private/key,或者在playbook里设置ansible_ssh_private_key_file参数,也可以通过环境变量export ANSIBLE_PRIVATE_KEY_FILE=/path/to/key临时指定。
  • 检查目标服务器的权限设置:登录到目标服务器(如果能通过其他方式),检查kmv用户的~/.ssh目录权限必须是700,~/.ssh/authorized_keys文件权限必须是600——权限太松的话,sshd会拒绝公钥登录,执行这两个命令修复:
    chmod 700 ~kmv/.ssh
    chmod 600 ~kmv/.ssh/authorized_keys
    
  • 检查目标服务器的sshd配置:确认目标服务器的/etc/ssh/sshd_config里,PubkeyAuthentication设置为yes,并且没有针对kmv用户设置PubkeyAuthentication no的规则,修改后记得重启sshd服务(比如systemctl restart sshd)。
  • 处理主机指纹问题:如果是第一次连接这个服务器,可能需要先手动ssh一次,接受目标主机的指纹(终端会提示你输入yes确认),Ansible默认不会自动接受陌生主机的指纹。如果不想每次手动确认,也可以在ansible.cfg里设置host_key_checking = False,不过生产环境不建议这么做,有安全风险。

备注:内容来源于stack exchange,提问作者Varun K M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 14:09:51