问题描述
我正试图从詹金斯那里打电话给我的Ansible剧本。但是每次我这样做,我都会因为公共密钥错误而被拒绝访问。 我的目标是将剧本从本地计算机推送到GC VM。
事实:
- Ansible和jenkins安装在同一台计算机上
- 我的GC VM实例密钥在/home/govind/Desktop/splukinstancekey.pem路径中。这是在我的主要用户(“ govind”)中。
- 在詹金斯大学,我已经使用ssh-keygen生成了一个RSA密钥,并将其添加到用户“ govind” .ssh / authorized_keys中。这样我就可以从jenkins用户到govind用户(安装ansible的地方)建立连接。
问题是,每当我从jenkins用户运行剧本时,都会引发以下错误:
任务[聚会事实] ********************************************** ****************************************************** **************************** 致命的:[34.71.8.168]:难以置信! => {“已更改”:false,“ msg”:“无法通过ssh连接到主机:加载密钥“ /home/govind/Desktop/splunkinstancekey.pem”:许可被拒绝\ r \ nubuntu@34.71.8.168:许可被拒绝(公钥)。“,”无法访问“:true} 致命的:[35.223.166.86]:难以置信! => {“已更改”:false,“ msg”:“无法通过ssh连接到主机:加载密钥“ /home/govind/Desktop/splunkinstancekey.pem”:许可被拒绝\ r \ nubuntu@35.223.166.86:许可被拒绝(公钥)。”,“无法访问”:true}
从用户“ govind”开始,我可以通过ansible命令轻松地对远程服务器执行ping操作。谁能帮助我了解jenkins用户可能缺少的差距。 我了解jenkins无法访问pem文件,因为它不属于该文件。从其他各种帖子中,我读到jenkins在安装了ansible的情况下与用户建立联系,然后执行该剧本。但无法取得任何进展。
解决方法
看来您应该从ssh故障排除的角度来解决这个问题。听起来您正在尝试从jenkins框切换到govind框。因此,使用生成的密钥对,需要将公共密钥放在ubuntu
用户下的govind框中的authorized_keys下。即-因为发生错误,您以ubuntu用户的身份(-ubuntu@34.71.8.168
来回切换。这样一来,您应该可以像ubuntu
用户那样从jenkins框切换到govind框。