ssh - Ansible 的随机 SSH 权限问题
问题描述
我在使用 ansible 时遇到了一个奇怪的问题,我正在尝试在我的服务器上创建一个初始设置,以便我可以使用 SSH 密钥而不是密码,所以我正在做的是针对每个服务器组,我有一个正在创建我的路径SSH 密钥,使用 ansible 通过密码提示在服务器上授权密钥,这样之后我就不需要再次使用密码,除非我重新生成我的密钥。
我通过创建我的 SSH 密钥ssh-keygen -f ./ssh/server/id_rsa
我有我的主机文件设置,其中包含 SSH 密钥的位置,如下所示
[server]
172.16.0.211
[server:vars]
ansible_user=ubuntu
ansible_ssh_private_key_file=./ssh/server/id_rsa.pub
我的 ansible playbook 中有以下内容
- hosts: all
gather_facts: yes
become: yes
tasks:
- name: Set authorized key for user {{ ansible_user }} copying it from current user
authorized_key:
user: "{{ ansible_user }}"
state: present
key: "{{ lookup('file', '{{ ansible_ssh_private_key_file }}') }}"
我正在运行ansible-playbook -K -k ./ssh.yaml --verbose
,所以我必须先输入我的密码,然后才能设置我的 SSH 密钥,它可以工作,它会更新,我可以使用它运行 pingansible all --module-name ping
并且它可以正常工作..
172.16.0.211 | SUCCESS => {
"changed": false,
"ping": "pong"
}
但是随机地,如果我再次运行 ping 或使用新的 SSH 密钥运行任何其他剧本.. 它说
Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@ WARNING: UNPROTECTED PRIVATE KEY FILE! @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0644 for './ssh/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"./ssh/server/id_rsa.pub\
我试图给它使用权限,chmod 600 ./ssh/server/id_rsa.pub
但现在 ping 说
172.16.0.211 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Load key \"./ssh/server/id_rsa.pub\": invalid format\r\nubuntu@172.16.0.211: Permission denied (publickey,password).",
"unreachable": true
}
我实际上能够让它工作几分钟..我将它发送到多个服务器..但它显示出类似的错误,但仅适用于其中 2 个......
172.16.0.212 | SUCCESS => {
"changed": false,
"ping": "pong"
}
172.16.0.210 | SUCCESS => {
"changed": false,
"ping": "pong"
}
172.16.0.211 | SUCCESS => {
"changed": false,
"ping": "pong"
}
172.16.0.213 | SUCCESS => {
"changed": false,
"ping": "pong"
}
172.16.0.214 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@ WARNING: UNPROTECTED PRIVATE KEY FILE! @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0644 for './ssh/server/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"./ssh/server/id_rsa.pub\": bad permissions\r\nubuntu@172.16.0.214: Permission denied (publickey,password).",
"unreachable": true
}
172.16.0.215 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@ WARNING: UNPROTECTED PRIVATE KEY FILE! @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0644 for './ssh/server/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"./ssh/server/id_rsa.pub\": bad permissions\r\nubuntu@172.16.0.215: Permission denied (publickey,password).",
"unreachable": true
}
我可以让它再次工作的唯一方法是再次重新生成密钥并再次复制回服务器,但再次发生
感觉不像是权限问题,因为它对其他服务器使用相同的 SSH 密钥.. ?
键入此内容时,再次运行它,现在它们都失败了。我仍然可以通过密码连接到服务器,因此服务器没有问题
有什么想法可能导致这种情况吗?
解决方案
推荐阅读
- image - 当 Image(来自 react-native)抛出 onError 时渲染文本组件
- python-3.x - ModuleNotFoundError 即使模块在 sys.path
- python - 使用python的CSV到JSON问题
- visual-studio-2017 - .NET Core 3.0 没有出现在 Visual Studio 2017 中?
- python - 有没有办法在 python pandas 中将基于时间的事件划分为小时模板?
- pyspark - 使用 selectExpr 在 pySpark 中转换数据框的列
- reactjs - 避免在没有数据时显示 y 轴标签和点:HIghcharts
- angular - 如何在 Angular 中以模式形式使用 getProperty?
- codenameone - 可以禁用 MultiButton 的底部下划线吗?
- sql-server-2017 - 使用 R 在 SQL Server 2017 中运行 sp_execute_external_script SP 时收到“STDERR 消息...”消息