如何解决为什么主机密钥验证失败?带有Easy-Deploy-Bundle的Symfony和BitBucket部署
我正在尝试通过BitBucket Pipelines和easy-corp / easy-deploy-bundle将Symfony 5应用程序部署到我的服务器上。我已按照https://support.atlassian.com/bitbucket-cloud/docs/use-ssh-keys-in-bitbucket-pipelines/上的说明创建了ssh密钥,并将服务器添加为BitBucket中的已知主机。我还按照https://github.com/EasyCorp/easy-deploy-bundle/上的说明进行操作。
运行php bin/console deploy -v
时在管道内出现的错误是:
[...] Executing command: echo 1234353400
| err :: Host key verification failed.
In Process.php line 252:
[Symfony\Component\Process\Exception\ProcessFailedException]
The command "ssh ... -p ... 'echo 1234353400'" failed.
Exit Code: 255(Unknown error)
Working directory: /opt/atlassian/pipelines/agent/build
Output:
================
Error Output:
================
Host key verification failed.
我已将Symfony的公钥添加到服务器上的文件~/.ssh/authorized_keys
中。
我用于部署的配置文件(deploy.php
)如下:
<?php
use EasyCorp\Bundle\EasyDeployBundle\Deployer\DefaultDeployer;
return new class extends DefaultDeployer
{
public function configure()
{
return $this->getConfigBuilder()
->server('user@host:port')
->deployDir('dir')
->repositoryUrl('ssh-url')
->repositoryBranch('develop')
;
}
};
用我的凭据替换了用户,主机,端口,目录和ssh-url,在通过终端中的ssh访问服务器时,它们可以正常工作。
那么我在做什么错了? easy-deploy-bundle是否可以访问有效的.ssh目录,BitBucket将密钥和已知主机存储在该目录中?
我发现StrictHostKeyChecking=no
可能是一种解决方案,但是我没有找到如何在easy-deploy-bundle中禁用它。
感谢您的帮助。
解决方法
我发现
StrictHostKeyChecking=no
可能是一种解决方案,但是我没有找到如何在easy-deploy-bundle中禁用它。
这意味着您实际上没有 added the remote server fingerprint to the known_hosts
。
- 您仅添加了主机名,并且需要IP(反之亦然)
- 或者您已经使用一个帐户(
~/.ssh/known_hosts
)添加了该插件,但是该插件是由另一个帐户(或root
)执行的,并且没有读取正确的known_hosts
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。