【问题标题】:How to use public key in azure devops pipline copy files over SSH如何通过 SSH 在 azure devops 管道复制文件中使用公钥
【发布时间】:2021-02-06 22:21:43
【问题描述】:

我正在尝试使用 Azure DevOps 将 Laravel 应用程序部署到 Bluehost 网站。

这个想法是,当我提交对我的存储库的更改时,管道将触发并运行 composer,然后部署到网站。

我遇到的问题是 Bluehost 的身份验证失败,即使我已经授权了 SSH 密钥(我可能只授权公共密钥)。

错误:无法连接到远程计算机。验证 SSH 服务连接详细信息。无法连接到远程机器。验证 SSH 服务连接详细信息。错误:所有配置的身份验证方法都失败..

我的理论是,DevOps 正在生成一个新的公钥来登录 BlueHost,但无法进行身份验证(因为它不是授权的公钥)。

我看到我可以使用“安装 SSH 密钥”任务;但是,我不明白如何在“通过 SSH 复制”任务中使用下载的密钥。

如何在 Azure DevOps 管道通过 SSH 复制任务中使用公钥?

【问题讨论】:

    标签: ssh azure-devops azure-pipelines


    【解决方案1】:

    使用Copy Files Over SSH任务的前提如下:

    • 该任务支持使用 SSH 密钥对连接到远程 机器。
    • 公钥必须预先安装或复制到远程 机器。

    当您使用Install SSH Key 任务时,SSH 密钥会安装在远程计算机上。您无需在Copy Files Over SSH 任务中下载它。检查以下示例:

    https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/install-ssh-key?view=azure-devops#example-setup-using-github

    【讨论】:

    • 哦,所以,安装 SSH 密钥并没有安装到处理部署的机器上。它正在将密钥安装到远程机器上? (这已经完成了)。我想我的问题是,如何将通过 SSH 复制文件与我添加到远程计算机的公钥一起使用?
    • 您的远程机器上应该已经安装了公钥。创建 SSH 服务连接时,需要提供用户名+密码,或者提供私钥。检查以下链接:docs.microsoft.com/en-us/azure/devops/pipelines/library/…docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/…。此外,此任务适用于运行 Linux 的目标机器。您的目标机器是否运行 Linux?
    • 您的问题进展如何?
    • 对不起,我在那儿病了一段时间。我可以通过部署 FTPS 来绕过它。问题未解决,因为授权仍然失败。目标机器确实在运行linux,并且公钥是授权的。
    • 我今天能够让它工作 1. 我创建了一个 SSH 密钥对,并通过 CPanel 将两者上传到 Bluehost 2. 我授权了公钥。 3. 我备份了我的开发机器本地 ssh 密钥,并使用私钥 ssh 进入服务器。 4. 成功后,我将私钥的内容复制到 devops 的 SSH 服务中。 5. 我只为我的 SSH 连接运行了“通过 SSH 复制文件”,使用之前编辑的 SSH 服务。 (正如你所建议的) 6. 我运行了管道,它通过了! (不知道是不是一直都抄错了什么)
    猜你喜欢
    • 2020-11-13
    • 2022-10-14
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    相关资源
    最近更新 更多