ansible:使用ssh密钥身份验证但多次询问密码 - 为什么?

时间:2016-11-22 07:01:49

标签: ssh amazon-ec2 ansible

在我的管理主机上,我安装了ansible 2.2.0.0,我正在尝试连接到我的客户端。

客户端是仅接受SSH密钥登录的EC2实例。我有一个简单的playbook,它在客户端上创建一个临时文件

我看到我多次被要求输入私钥密码并且想知道原因的行为?我在先前版本的Ansible上没有看到这种行为。

  ansible-playbook -i inventory soe-yml --verbose --private-key <keyfile> -vvv

  ansible-playbook -i inventory soe-yml --verbose --private-key <keyfile>
  Using /home/X/ansible/ansible.cfg as config file

PLAY [<instance-dns>] **************************

TASK [setup] *******************************************************************
Enter passphrase for key 'X':
 [WARNING]: sftp transfer mechanism failed on [<instance-dns>]. Use ANSIBLE_DEBUG=1 to see detailed information

Enter passphrase for key 'X':
Enter passphrase for key 'X':
Enter passphrase for key 'X':
ok: [<instance-dns>]

TASK [Create test file] ********************************************************
Enter passphrase for key '<keyfile>':

  Enter passphrase for key 'X':
  Enter passphrase for key 'X':
  Enter passphrase for key 'X':
  Enter passphrase for key 'X':
  Enter passphrase for key 'X':
changed: [] => {"changed": true, "dest": "/tmp/hello", "gid": 1000, "group": "centos", "mode": "0664", "owner": "centos", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 0, "state": "file", "uid": 1000}

PLAY RECAP *********************************************************************
<instance-dns> : ok=2    changed=1    unreachable=0    failed=0`


```

我找到了此链接https://github.com/ansible/ansible/issues/16354 这指向我使用我正在使用的ssh-agent并且它有效,但我很想理解为什么我被问到这么多时间与客户进行这种互动?

另外,如果我使用ask-pass选项,ansible就会挂起

[X@X ansible]$ ansible-playbook -i inventory soe-yml --verbose --private-key key --ask-pass
Using /home/x/ansible/ansible.cfg as config file
SSH password:

PLAY [hostx] **************************

TASK [setup] ***************

* 这是一个错误吗?看到类似的东西?

1 个答案:

答案 0 :(得分:0)

你的ssh密钥是加密的。您需要设置一些内容,以便在您登录时解密密钥:https://askubuntu.com/questions/362280/enter-ssh-passphrase-once

或者您不能加密或私钥(安全性较低)。