我的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的权限)
答案 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>