Rundeck集成Ansible无法建立SSH连接问题求助
问题分析与解决
你遇到的问题核心是Rundeck运行的上下文环境和手动操作时不一致,导致SSH连接时出现终端缺失和主机密钥验证失败的问题,具体解决步骤如下:
1. 对齐Rundeck运行用户的密钥配置
- Rundeck默认以
rundeck系统用户运行,而你手动测试用的是个人用户,两者的SSH配置完全独立。需要将可用的密钥复制到Rundeck用户的SSH目录:cp ~/.ssh/id_rsa /var/lib/rundeck/.ssh/ chown rundeck:rundeck /var/lib/rundeck/.ssh -R chmod 700 /var/lib/rundeck/.ssh chmod 600 /var/lib/rundeck/.ssh/id_rsa - 如果你的SSH密钥设置了密码短语,Rundeck在无终端环境下无法弹出密码输入窗口,要么去掉密钥密码:
要么配置ssh-agent为Rundeck托管密钥(需确保Rundeck启动时自动加载agent)。su - rundeck -s /bin/bash ssh-keygen -p -f /var/lib/rundeck/.ssh/id_rsa
2. 解决主机密钥验证失败问题
- 手动切换到rundeck用户,完成一次SSH连接确认主机密钥:
输入su - rundeck -s /bin/bash ssh 目标主机用户名@目标主机IPyes确认主机密钥后,/var/lib/rundeck/.ssh/known_hosts会自动记录该主机信息,后续Rundeck调用Ansible时就不会再触发验证。 - 若测试环境允许临时跳过验证(生产环境不推荐),可在Ansible配置文件
ansible.cfg中添加:
或者在Rundeck的节点配置中添加参数:[defaults] host_key_checking = Falseansible_ssh_common_args="-o StrictHostKeyChecking=no"
3. 确认/dev/tty权限(可选)
检查/dev/tty的权限是否允许rundeck用户访问:
ls -l /dev/tty
正常权限应为crw-rw-rw-,若权限不足,执行chmod 666 /dev/tty调整(Rocky9默认权限通常符合要求,此步骤为兜底检查)。
核心错误日志:
debug1: read_passphrase: can't open /dev/tty: No such device or address Host key verification failed.
内容的提问来源于stack exchange,提问作者pj43
相关产品推荐
相关产品推荐

