我有一个Ansible playbook,它接受公钥(存在于我的源计算机上)并将其复制到新的远程服务器,因为此密钥已添加到我的github帐户。
func1 --> func2 --> async code
但是,克隆repo任务失败并告诉我SSH密钥的权限是0644,并且其他人可以查看不被接受的权限。
我确实在发送密钥任务中将模式设置为0600,但它仍然显示为0644。
有关如何解决此问题的任何帮助?
答案 0 :(得分:4)
首先,重复私钥是一种可怕的做法,更糟糕的是将它们分散在未受保护的计算机上。阅读并遵循:Using SSH agent forwarding。
关于问题中的问题(如果你使用SSH代理转发,它甚至不应该出现),你在your comment中显然是错误的:
home / app位于远程计算机上名为/ home / app的文件夹中,而../priv_key位于/ app目录的父目录中
如果您在static
指定key_file: ../priv_key
,Git可执行文件将查找不在“dest: home/app
文件,但在priv_key
目录的父目录中(似乎您有home
的另一个副本,其权限错误。)
有关如何解决此问题的任何帮助?
不要使用相对路径,特别是如果您不确定自己在做什么而不愿意自行解决问题。
此外,如果您仅限制private_key
至priv_key
用户的访问权限,就像您在第一项任务中所做的那样,您将无法使用root
用户进行阅读第二个(您使用vagrant
明确指定)。