首页 文章

当我使用Ansible时,为什么不是't ssh-agent authenticating the private key'的密码?

提问于
浏览
0

In short

当我从命令行进入远程服务器时,ssh-agent将验证密码短语,但每当我执行一个ansible playbook时,它都会要求输入密码 . 我的问题是, why won't ssh-agent authenticate the passphrase for Ansible? How can I get it to work?

In detail

我创建了一个受密码保护的私钥和相应的公钥,并将公钥上传到服务器 . 我使用 eval $(ssh-agent) 然后 ssh-add /etc/ansible/ssh/private-key.pem 调用了ssh-agent

键入 ssh-agent -l 表示已添加密钥 .

我可以使用_1444705从命令行成功进入机器,而不会被要求输入密码 . 但是,如果我执行一个剧本或做类似 sudo ansible -m ping server 的事情,它会说

输入密钥'/etc/ansible/ssh/private-key.pem'的密码:

我在详细模式下再次尝试它,它给了我以下信息

ansible 2.4.2.0 config file = /etc/ansible/ansible.cfg配置模块搜索路径= [u'/ etc / ansible / library'] ansible python module location = /usr/lib/python2.7/dist-packages/ ansible可执行文件位置= / usr / bin / ansible python版本= 2.7.12(默认,2017年11月20日,18:23:56)[GCC 5.4.0 20160609]使用/etc/ansible/ansible.cfg作为配置文件解析/带有ini插件的etc / ansible / hosts库存源META:运行处理程序使用模块文件/usr/lib/python2.7/dist-packages/ansible/modules/system/ping.py <35.230.127.195>为用户 Build SSH连接: user6 <35.230.127.195> SSH:EXEC ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o StrictHostKeyChecking = no -o Port = 22 -o'IdentityFile =“/ etc / ansible / ssh / private-key.pem “'-o KbdInteractiveAuthentication = no -o PreferredAuthentications = gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication = no -o User = user6 -o ConnectTimeout = 10 -o ControlPath = / home / user6 / .ansible / cp / e26536be01 35.230.127.195'/ bin / sh -c'“'”'ec ho~ && sleep 0'“''''输入密钥'/etc/ansible/ssh/private-key.pem'的密码:

My Environment

  • Ansible版本是2.4.2.0

  • Python版本是2.7.12

  • OpenSSH_7.2p2 Ubuntu-4ubuntu2.2,OpenSSL 1.0.2g

  • ssh密钥是使用RSA(不是SSH-1 RSA)和4096位创建的 .

  • 在ansible.cfg传输中设置为智能 .

  • 密钥是使用ansible-vault加密的,但是我试过没有加密就做了,没有任何区别 .

请帮忙,我没留下太多头发 .

UPDATE: 使用 transport = local 在本地执行所有操作(即它不会在远程服务器上执行ansible playbook(即使它看起来像是这样)) .

1 回答

  • -1

    转到以下位置的ansible.cfg文件:

    /etc/ansible/ansible.cfg

    并设置transport = local:

    transport = local
    

    谢谢

相关问题