我设置了 2 个新用户及其各自的密钥对,他们的公钥已在远程主机上建立。我遇到的问题是,我按如下方式在主机文件上传递了 ssh 密钥
[远程主机:变量] ansible_ssh_private_key_file=~/.ssh/user1.private_key ansible_ssh_private_key_file=~/.ssh/user2.private_key
问题是只有一个用户可以建立 ansible 连接。即使两个用户都可以通过 ssh 进入远程主机。
我确信有一种方法可以让两个用户访问主机文件中的同一节点
答案1
当运行 Ansible 的节点上的用户不同时,您可能会从文件的基本名称中删除用户名: ~/.ssh/remotehost.private_key
路径传递给 ssh,并~
解析为他们的个人主目录。
当同一个本地用户需要连接到多个不同的远程用户时,可以在清单中创建具有不同连接变量。 ini 格式:
[remotehost]
remotehostuser1 ansible_user=user1 ansible_ssh_private_key_file=~/.ssh/user1.private_key
remotehostuser2 ansible_user=user2 ansible_ssh_private_key_file=~/.ssh/user2.private_key
[remotehost:vars]
ansible_host=remotehost
还有更多方法可以实现这一点。利用环境变量提供 private_key_file 的方式,${ANSIBLE_PRIVATE_KEY_FILE}
或者使用 ssh_config。