[英]How to generate ssh key for another user in linux, and automate it in ansible
我正在通過 shell 配置器配置 vagrant box,它反過來對 localhost 執行 ansible play。 我正在使用以下劇本
---
- name: Provision vagrant1 box
hosts: localhost
tasks:
- name: Install nmap
apt: name=nmap state=latest update_cache=yes
- name: Install sshpass
apt: name=sshpass state=latest update_cache=yes
- name: Generate ssh key
shell: "ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''"
現在的問題是,shell 配置程序,因此 ansible play 以 root 身份執行,因為我必須為用戶 vagrant 和可能的其他用戶設置 ssh 密鑰。
此外,自動化 ssh 密鑰創建和將公鑰復制到已知主機首先感覺笨拙和脆弱,因為可能信任服務器提示和密碼輸入提示,密碼可能會有所不同。 為不同用戶自動創建 ssh 密鑰並將公鑰復制到未知數量的遠程服務器的最佳方法是什么?
對於那些好奇的人,我打算使用 nmap 查找網絡上的所有遠程服務器,並使用 sshpass 提供密碼以幫助自動化 ssh-copy-id。
在 Ansible playbook 中為用戶生成 SSH 密鑰的正確方法是使用user 模塊的generate_ssh_key
關鍵字。 這樣,密鑰會以正確的權限生成,並且現有的密鑰不會被覆蓋(除非您希望這樣做):
---
- hosts: your_host
- user:
...
generate_ssh_key=yes
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.