我试图在Ubuntu 14 LTS服务器上通过SSH运行Ansible ad hoc命令:
ansible all -m ping -u myusername
但是我收到以下错误消息:
FAILED => SSH错误:权限被拒绝(公钥,密码)
当我尝试运行带有用于询问密码的标志的ad命令时,它可以工作:
ansible all -m ping -u myusername --ask-pass
absence.ugent.be | success >> {
"changed": false,
"ping": "pong"
}
有没有人知道为什么命令在没有要求我的密码的情况下无法正常工作?我怎么解决这个问题?
更新:正如neuhaus建议的那样,我试图从我的ssh密钥文件中删除密码:
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
但那并没有解决它。奇怪的是我仍然可以成功运行
ansible all -m ping -u myusername --ask-pass
使用我的旧密码短语,即使在创建新的ssh密钥后也是如此。
感谢您的帮助,
安东尼
答案 0 :(得分:-1)
您的SSH密钥受密码保护。通过添加--ask-pass
,ansible将要求提供此密码(不是您的登录密码)。
如果您希望在不输入密码的情况下使用此功能,remove the passphrase from your SSH key。