如何在 azure-pipelines 中使用 public 键对某些内容进行 scp?

How to scp something with public key in azure-pipelines?

我的 azure pipeline 包含编译项目和从中构建 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。它指出,

The task supports use of an SSH key pair to connect to the remote machine(s).

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

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

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

不需要调用 scp 命令本身。