我可以使用一些指导。我有一个安装了 Ansible 的管理框,需要在多个系统上创建用户,并使用 SSH 身份验证。
我创建了我的 SSH 密钥,并将密钥添加到 Ansible Playbook,当我执行该剧本时,它会在管理箱和远程服务器上创建用户,并将密钥复制到远程服务器。
- 这只能在 root 权限下,开启 SSH 身份验证的情况下完成
下面显示已创建用户“Ansible”,并且已在管理框和远程服务器上创建该用户。它还复制了密钥。但是,我无法使用 SSH 身份验证进行身份验证。
AdminBox:CentOS Linux 版本 7.3.1611(核心)- 10.6.16.235
[ansible@SELC01 ~]$ ls /etc/ansible/pub_key/
ansible ansible.pub
[ansible@SELC01 ~]$ cat /etc/ansible/pub_key/ansible.pub
ssh-rsa AAAAB3NzaC1yc2EA.....Qys0/V ansible@localhost
[ansible@SELC01 ~]$
[ansible@SELC01 ~]$ cat /home/ansible/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EA.....Qys0/V ansible@localhost
[ansible@SELC01 ~]$
[ansible@SELC01 ~]$ groups
ansible root wheel
[ansible@SELC01 ~]$ cat /home/ansible/.ssh/known_hosts...
10.6.16.106 ecdsa-sha2-nistp256 AAAAE2VjZHNh.....
服务器:CentOS Linux 版本 7.3.1611(核心)- 10.6.16.106
[ansible@SELC02 ~]$ cat /home/ansible/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EA......Qys0/V ansible@localhost
[ansible@SELC02 ~]$
[ansible@SELC02 ~]$ groups
ansible root wheel
管理员框:CentOS Linux 版本 7.3.1611(核心)- 10.6.16.235
[ansible@SELC01 ~]$ ssh [email protected]
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[ansible@SELC01 ~]$
不确定为什么我被拒绝访问。因此,用户 Ansible 将成为配置用户;创建账户,以便其他用户可以登录管理框以在其他系统上执行维护,例如 10.6.16.106
感谢您的帮助。
答案1
您的ssh
客户端对您生成的密钥一无所知。您需要将它们放入~/.ssh
子目录中或创建~/.ssh/config
指向您的 SSH 密钥的目录:
Host 10.6.16.106
IdentityFile /etc/ansible/pub_key/ansible