e2tox / blog

技术博客,点开Issues查看。看我心情,不定期更新。
28 stars 0 forks source link

如何使用正确的姿势让 Ansible 访问有密码保护的 ssh private key? #32

Open e2tox opened 3 years ago

e2tox commented 3 years ago

如果 ssh key 用了密码保护,那么 ansible 在运行的时候,如果有inventory有5个主机,那么就会是这样子

ansible-playbook -i hosts play.yml
Enter passphrase for /root/.ssh/id_rsa: 
Enter passphrase for /root/.ssh/id_rsa: 
Enter passphrase for /root/.ssh/id_rsa: 
Enter passphrase for /root/.ssh/id_rsa:
Enter passphrase for /root/.ssh/id_rsa:

每多一个服务器,都多输入一次 ssh 密码😵

但我只想输入一次密码,怎么搞?答案是 ssh-agent

首先是前戏:

eval "$(ssh-agent)"

然后将受密码保护的 ssh key 增加到 ssh-agent 中,如果有多个,就把每个用到的 key 都 ssh-add 一遍。

ssh-add ~/.ssh/id_rsa

此时运行 ansible 或者 ansible-playbook 就不会再出现密码提示了😎

参考: SSH-Agent-Forwarding