如何使用 ansible 为新创建的用户在 vagrant 中注册 ssh 密钥?
How to register ssh key in vagrant using ansible for newly created user?
目前我正在使用 vagrant box 和 ansible 。我的本地配置网络是 config.vm.network "private_network", ip: "192.168.33.10".
我使用 playbook-ansible 在 vagrant box 中添加了一个用户:
hosts: all
remote_user: vagrant
sudo: true
tasks:
authorized_key: user=root
key="{{ lookup('file','/home/root/.ssh/id_rsa.pub') }}"
path=/etc/ssh/authorized_keys/root
manage_dir=no
当我执行 vagrant ssh
时,我可以在主目录中看到 'root' 用户并在 /etc/ssh/authorized/toot 中看到授权密钥,但是当我执行 root@192.168.33.10
时
Agent admitted failure to sign using the key.
root@192.168.33.10's password:
正在询问密码。我尝试了所有无密码登录(基于 ssh 密钥的身份验证)。
正如您所描述的,剧本完成了工作。
检查 ssh 设置。不知道您使用哪个盒子,这很难说。
例如:在 ubuntu 上,sshd_config 文件中 PasswordAuthentication 的默认设置是 yes。
如果我没记错的话,你是在为 root 用户添加密钥,但你在错误的目标目录中提到了它:
hosts: all
remote_user: vagrant
sudo: true
tasks:
- name: Add Authorized Key for ROOT
authorized_key: user={{ username }}
key="{{ lookup('file','~/.ssh/id_rsa.pub') }}"
state=present
更改 key="{{ lookup('file','~/.ssh/id_rsa.pub') }}" 也这样,如果找不到相对路径的键:
key="{{ lookup('file','/home/username/.ssh/id_rsa.pub') }}"
从 /etc/ssh/sshd_config 取消注释:
AuthorizedKeysFile %h/.ssh/authorized_keys
如果仍然遇到问题,也像这样更改此行:
PasswordAuthentication no
希望对您有所帮助。
目前我正在使用 vagrant box 和 ansible 。我的本地配置网络是 config.vm.network "private_network", ip: "192.168.33.10".
我使用 playbook-ansible 在 vagrant box 中添加了一个用户:
hosts: all
remote_user: vagrant
sudo: true
tasks:
authorized_key: user=root
key="{{ lookup('file','/home/root/.ssh/id_rsa.pub') }}"
path=/etc/ssh/authorized_keys/root
manage_dir=no
当我执行 vagrant ssh
时,我可以在主目录中看到 'root' 用户并在 /etc/ssh/authorized/toot 中看到授权密钥,但是当我执行 root@192.168.33.10
Agent admitted failure to sign using the key.
root@192.168.33.10's password:
正在询问密码。我尝试了所有无密码登录(基于 ssh 密钥的身份验证)。
正如您所描述的,剧本完成了工作。
检查 ssh 设置。不知道您使用哪个盒子,这很难说。
例如:在 ubuntu 上,sshd_config 文件中 PasswordAuthentication 的默认设置是 yes。
如果我没记错的话,你是在为 root 用户添加密钥,但你在错误的目标目录中提到了它:
hosts: all
remote_user: vagrant
sudo: true
tasks:
- name: Add Authorized Key for ROOT
authorized_key: user={{ username }}
key="{{ lookup('file','~/.ssh/id_rsa.pub') }}"
state=present
更改 key="{{ lookup('file','~/.ssh/id_rsa.pub') }}" 也这样,如果找不到相对路径的键:
key="{{ lookup('file','/home/username/.ssh/id_rsa.pub') }}"
从 /etc/ssh/sshd_config 取消注释:
AuthorizedKeysFile %h/.ssh/authorized_keys
如果仍然遇到问题,也像这样更改此行:
PasswordAuthentication no
希望对您有所帮助。