【问题标题】:Ansible `authorized_key` copies the key to remote user but not working when trying to sshAnsible `authorized_key` 将密钥复制到远程用户,但在尝试 ssh 时不起作用
【发布时间】:2016-09-14 05:44:21
【问题描述】:

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

【问题讨论】:

    标签: ssh ansible


    【解决方案1】:
    - 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>进一步调试

    【讨论】:

    • PubKeyAuthentication 已经存在。文件权限更改是我需要的。现在可以了!其次,我注意到再次运行 playbook 并没有在同一个实例上注册新的文件任务,我创建了新实例并且文件任务在此工作。 (不知道为什么会这样)
    猜你喜欢
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 2016-12-17
    • 2021-08-12
    • 1970-01-01
    相关资源
    最近更新 更多