SSH 从 circleci 进入 digitalocean 服务器

SSH into digitalocean server from circleci

我正在尝试通过 circleci 引入一些自动化,它将通过 ssh 进入在 digitalocean 中创建的服务器,以便输入更新所述服务器的命令。我不太确定该怎么做。如果我直接使用 ssh IP ADDRESS 命令开始,它将保持

不会分配伪终端,因为标准输入不是终端。 无法确定主机“IP 地址(IP 地址)”的真实性。

本来是问我要不要继续连接,我会回答是,但是直到失败后才出现,所以甚至没有添加是 |命令将起作用。我还尝试生成一个 ssh 密钥,然后我可以将其添加到 digitalocean 中接受的 ssh 密钥列表中,但由于我无法与之交互,我无法按照 ssh-keygen -t rsa 后面的提示进行操作-b 4096 -C 命令。有人有什么想法吗?我肯定被难住了。

要从 CircleCI 通过 SSH 连接到 Digital Ocean,您需要做几件事:

密钥管理

  • 创建 SSH 密钥。将 public 密钥添加到您计划使用的用户的 DO 服务器上的 ./ssh/authorized_keys 文件中。
  • 在 CircleCi 项目设置中的 SSH Keys 部分,Additional SSH Keys 面板中添加您的私钥。单击 添加 SSH 密钥 ,将 主机名 留空(重要)并粘贴您的密钥。
  • 复制您的密钥指纹。

将您的私钥注入您的 CircleCI 实例

在您的 .circleci/Config.yml 配置文件中,添加一个步骤以将您的私钥注入您的 CircleCi 实例:

- add_ssh_keys:
          fingerprints:
            - "[ADD  YOUR SSH FINGERPRINT HERE]"

忽略 SSH 警告

在使用它之前修改 ssh 客户端配置以忽略警告:

 - run:
          name: SSH into DO
          command: |
              echo "disregard ssh known_hosts warnings"
              echo "UserKnownHostsFile=/dev/null" > ~/.ssh/config
              echo "StrictHostKeyChecking=no">> ~/.ssh/config
              ssh something something