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

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在无终端环境下无法弹出密码输入窗口,要么去掉密钥密码:
    su - rundeck -s /bin/bash
    ssh-keygen -p -f /var/lib/rundeck/.ssh/id_rsa
    
    要么配置ssh-agent为Rundeck托管密钥(需确保Rundeck启动时自动加载agent)。

2. 解决主机密钥验证失败问题

  • 手动切换到rundeck用户,完成一次SSH连接确认主机密钥:
    su - rundeck -s /bin/bash
    ssh 目标主机用户名@目标主机IP
    
    输入yes确认主机密钥后,/var/lib/rundeck/.ssh/known_hosts会自动记录该主机信息,后续Rundeck调用Ansible时就不会再触发验证。
  • 若测试环境允许临时跳过验证(生产环境不推荐),可在Ansible配置文件ansible.cfg中添加:
    [defaults]
    host_key_checking = False
    
    或者在Rundeck的节点配置中添加参数:ansible_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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:02:46