Ansible`authorized_key`将密钥复制到远程用户但在尝试ssh时无法正常工作

时间:2016-05-17 23:19:33

标签: ssh ansible

我的ansible playbook中有以下任务,它为已经由上一个任务创建的远程用户pranjal添加了我的ssh公钥。

- authorized_key:
    user: pranjal
    key:  "{{ lookup('file', 'pranjal.pub') }}"

当我运行ansible playbook时,它成功运行。但是,当我尝试使用以下命令登录服务器时:ssh pranjal@<server_ip>

我收到Permission denied (publickey)错误。

为了确保我从其他用户登录服务器,并仔细检查/home/pranjal/.ssh/authorized_keys中列出的密钥是否与我用于登录的本地公钥匹配。

我在这里猜测的问题可能是权限问题,我理解相关question的解决方案。

但是我们如何在Ansible任务中更改authorized_key的权限? (这样我就不必单独登录实例来修改.ssh / authorized_keys的权限)

1 个答案:

答案 0 :(得分:2)

- file: path=/home/pranjal/.ssh state=directory owner=pranjal mode=0700
- file: path=/home/pranjal/.ssh/authorized_keys state=file owner=pranjal mode=0600

您可能还想检查/验证/ etc / ssh / sshd_config是否具有以下内容:

PubkeyAuthentication yes

您可以按ssh -vvv pranjal@<server_ip>

进一步调试