Linux

如何記住/記憶體或指定 Ansible 的私鑰密碼

  • February 19, 2016

剛開始使用 Ansible,我已經在客戶端機器上設置了一個 Asible 使用者,並從 OpenSSL 創建了一組密鑰。我在自己的帳戶下執行 Ansible。我在 Ansible 配置中指定了使用者和私鑰文件。我希望遠端命令以該使用者身份執行,並且該使用者以 sudo 執行需要提升的命令。

/etc/ansible/ansible.cfg

private_key_file = /etc/ansible/pka/confman.crt
remote_user = confman

像這樣的命令在初始輸入密碼後不要求輸入密碼:

ansible all -m ping

每次我執行它們時,都會提示輸入密碼:

ansible all -m ping -b
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

ansible all -m ping --sudo
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

ansible all -a "cat /etc/redhat-release"
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

為什麼?

有沒有辦法設置密碼?有沒有更安全的方法?我計劃通過 cron 和其他無法輸入密碼片語的自動化工具遠端執行 ansible。

作為上下文,我從來不需要在 Linux 伺服器之間進行 SSH,總是從使用 putty、RoyalTS 和 mRemoteNG 等工具的 Windows 機器上進行,所以我的 ssh 知識……稀疏。我想我錯過了一些明顯的東西。

該功能稱為ssh-agent

$ eval `ssh-agent`  # you might have agent already running so this might not be needed
$ ssh-add /etc/ansible/private_keys/confman.crt

現在 ansible 應該能夠在代理中找到密鑰並進行身份驗證,而無需每次都要求輸入密碼。來自:文件:您的第一個命令

引用自:https://serverfault.com/questions/758440