当前位置: 首页 > 知识库问答 >
问题:

如何使用公共ssh密钥运行Ansible Playbook

沙海
2023-03-14

我试图使用提供的ssh密钥在远程服务器上运行我的Anable剧本。

我已将以下配置添加到我的清单文件:

all:
  hosts:
    server1:
      ansible_host: sample.server@noname.com
      dest_dir: /root
      sample_tree: sample_tree.txt
      private_key_file: ../config/id_rsa_tf

我在我的剧本中引用了以下内容:

- name: "Nightly Deploy"
  hosts: server1
  remote_user: sysuser
  tasks:
    - name: Copy test from local to remote
      tags:
        - copy
        - all
      copy:
        src: "test.tgz"
        dest: "{{ dest_dir }}/test.tgz"

我使用以下命令运行脚本:

anable-playbook--tags="复制"-v-i库存/nightly-build.yaml剧本/nightly-build.yaml

我得到的错误如下:

致命:[server1]:无法访问=

我的private\u key\u文件在我的库存文件中是错误的还是我称之为错误的?帮助会很好

共有1个答案

彭烨烁
2023-03-14

当没有生成和设置有效的公钥和私钥时,通常会发生此错误。

尝试以下任一方法:

>

[defaults]
privatekeyfile = /Users/username/.ssh/private_key        

它为您的剧本中的所有主机设置全局私钥。

使用以下行将私钥添加到你的剧本中:

vars:
  ansible_ssh_private_key_file: "/home/ansible/.ssh/id_rsa"

您还可以定义在命令行中直接使用的私钥:

ansible-playbook -vvvv --private-key=/Users/you/.ssh/your_key playbookname.yml
 类似资料:
  • 问题内容: 我正在做publicKey.getEncoded(),然后在前面附加“ ssh- rsa”,然后对它进行base64编码。然后添加SSH2标头/页脚。但是不会解码… 问题答案: Java公共密钥被编码为标准的X.509 SubjectPublicKeyInfo结构。 SSH2使用其自己的简单格式。Base-64对下面显示的方法的结果进行编码,并附加必要的SSH2标头和页脚。 有关将其他

  • 问题内容: 我正在使用Paramiko通过ssh连接到服务器。 基本身份验证效果很好,但我不明白如何使用公钥进行连接。 当我连接腻子时,服务器告诉我这一点: 我用这个ppk文件连接到它: 使用基本身份验证,我从日志中得到的错误是: 我尝试包含该ppk文件并将其设置为auth_public_key,但是没有用。 你能帮助我吗? 问题答案: 好的@Adam和@Kimvais是正确的,paramiko无

  • 问题内容: 马克·墨菲(Mark Murphy)在他的博客上很好地说明了应将哪些信息排除在公共存储库之外。密钥材料(例如用于各种服务的OAuth密钥或API密钥)就是一个很好的例子。 有问题的应用程序将是移动android应用程序,因此有人对其进行反编译以获取秘密密钥不在此问题范围内。 如何配置公共CI实例(例如cloudbees)上的构建作业,以使机密不泄漏到构建日志或编译目录中?我的主要目的是

  • 通常情况下,访问远程服务器上的 Git 仓库要受到限制。你可能不希望任何人都能读取文件,或者至少不能改动文件吧。在这种情况下,进行有效的认证就是非常必要地。 你可能已经通过你所使用的浏览器了解了 “HTTPS” 协议,尽管它使用起来很简单,但是很多系统管理员还是会出于各种原因去选择使用更为普遍的 “SSH” 协议。在这种协议之下,当涉及到身份验证时,你就很可能需要 “SSH公钥”。 对于这种类型的

  • 问题内容: 因此,我知道您可以用来解决问题,但除了Python3随附的库之外,我不想依赖其他库来解决问题。 我也知道生成公共密钥并允许它们在远程主机上是理想的,但这就是我打算使用此脚本的目的(在正确的位置设置密钥等)。 到目前为止,在SO社区的大量帮助下,我已经“靠我自己”了。我有点卡住检查分叉的子伪终端是否完成了它应该执行的操作。意思是我可以告诉SSH是否已完成执行,因为只要该功能运行,它就会一

  • 我发现了很多问题和教程,最后才把这些都放在一起。想把它记录下来,这样别人就可以省下很多时间的沮丧。 我试图在BitBucket上获得一个私人git存储库,使用部署密钥与Spring Boot Config Server一起工作,并在Docker中运行。我遇到了很多问题。 如何使用应用程序进行实际配置。yml文件 我似乎不知道我应该把SSH信息放在哪里。所有教程似乎都是针对https的。 我一直收到