Linux
如何記住/記憶體或指定 Ansible 的私鑰密碼
剛開始使用 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 應該能夠在代理中找到密鑰並進行身份驗證,而無需每次都要求輸入密碼。來自:文件:您的第一個命令