如何在 azure-pipelines 中使用公钥 scp 某些东西?

问题描述

我的 azure 管道包含一个项目的编译并从中构建 docker 镜像。

现在我想将此映像复制到目标机器并在那里运行。

使用shell脚本我正在做的是:

sudo docker build -f src/main/docker/Dockerfile.jvm -t $docker_name .
sudo docker save $docker_name > $tar_name

scp $tar_name $target_path

我想我已经在 azure-pipelines 中做了 buildsave 部分。

但是scp怎么做呢?我需要一些管道中的 ssh 密钥来在目标机器上授权它。它不能是我的密钥对,因为它会被泄露。那么如何为管道制作一个


这是the task description。它指出,

该任务支持使用 SSH 密钥对连接到远程 机器。

但是没有解释,如果我有密钥对如何使用。

解决方法

我发现 Azure 有名为 CopyFilesOverSSH 的特殊管道任务。它以预配置的“服务连接”的形式接收密钥,应该在单独的页面上配置:

enter image description here

配置 service connection 涉及正确存储密钥。

无需调用 scp 命令本身。