CircleCI-2.0 在哪里存储 SSH 私钥

57次阅读
没有评论

问题描述

想要使用 CircleCI-2.0 部署 Docker 容器,并使用 Ansible 来实现。他已经创建了一个私钥,并在 CircleCI-2.0 的用户界面中添加了这个私钥。他在 ~/.ssh 目录下查看,发现里面似乎是空的。在尝试使用 Ansible 运行时,遇到了连接主机的问题。

解决方案

请注意以下操作可能受版本差异影响,务必做好备份并谨慎操作。

方案1 – 添加 SSH 密钥指纹

根据 CircleCI-2.0 文档,你需要在配置文件中添加一个 add_ssh_keys 步骤,其中包含你的 SSH 密钥指纹。

以下是如何在你的 .circle/config.yml 文件中添加步骤的示例:

version: 2
jobs:
  build:
    docker:
      - image: ubuntu:xenial
    working_directory: ~/project
    steps:
      - add_ssh_keys:
          fingerprints:
            - "48:a0:87:54:ca:75:32:12:c6:9e:a2:77:a4:7a:08:a4"

在上面的示例中,我们在 steps 部分添加了 add_ssh_keys 步骤,并指定了你的 SSH 密钥指纹。你需要将示例中的指纹替换为你实际使用的 SSH 密钥指纹。

方案2 – 检查连接配置

如果你已经添加了 SSH 密钥指纹,但仍然遇到连接问题,可以考虑以下几个方面:

  1. 目标主机是否接受该密钥:确保你在目标主机上手动尝试连接,使用相同的私钥,以确认目标主机接受该密钥。可以使用以下命令尝试连接:

bash
ssh root@host -i key

如果此步骤成功,说明你的密钥在目标主机上可用。

  1. 容器中使用的用户:确保在配置文件中使用的用户与手动连接时使用的用户相同。如果在容器中使用了不同的用户,可能会导致连接失败。

方案3 – CircleCI-2.0 版本兼容性

如果你仍然遇到问题,可以考虑检查你使用的 CircleCI-2.0 版本与文档中提到的版本是否兼容。不同版本之间可能存在一些配置上的差异,导致操作不一致。

请注意,以上解决方案都是基于当前提供的问题描述和答案数据而生成的,如果有特定的配置和情况,可能需要根据实际情况进行调整。

总结

在本文中,我们探讨了使用 CircleCI-2.0 部署 Docker 容器并使用 Ansible 进行操作时遇到的问题。我们介绍了两种解决方案,分别是添加 SSH 密钥指纹和检查连接配置。通过遵循这些步骤,你应该能够成功解决连接问题,并顺利完成你的部署任务。

正文完