主机密钥验证失败的比特桶管道



嗨,我在远程服务器上使用ssh登录配置bitbucket管道时遇到问题。

错误输出如下:
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Host key verification failed

以下是我遵循的步骤:

  • 使用以下命令在我的服务器上生成私钥和公钥(不需要密码):ssh-keygen -t rsa -b 4096
  • 在Repository Settings->Pipelines-> deployment ->Staging environments
  • 添加base64编码的私钥
  • 推送文件"my_known_host ">ssh-keyscan -t rsa myserverip>my_known_hosts

我还试着做另一个测试:

  • 从存储库设置生成密钥
  • 将公钥复制到远程服务器上的authorized_keys文件
  • 在"已知主机"中输入我的远程服务器的ip;点击获取并添加
  • chmod 700 ~/.ssh
  • chmod 600 ~/.ssh/authorized_keys

这是我如何配置管道ssh连接

image: atlassian/default-image:latest
pipelines:
default:
- step:
name: Deploy to staging
deployment: staging
script:
- echo "Deploying to staging environment"
- mkdir -p ~/.ssh
- cat ./my_known_hosts >> ~/.ssh/known_hosts
- (umask  077 ; echo $SSH_KEY | base64 --decode > ~/.ssh/id_rsa)
- ssh $USER@$SERVER -p$PORT 'echo "connected to remote host as $USER"'

我尝试了所有可能的事情,但仍然无法连接。有人能帮我吗?

这种情况发生在您第一次尝试ssh到服务器时,您可以通过此选项StrictHostKeyChecking=no删除主机检查,以下是完整的命令供参考。

  • ssh -o StrictHostKeyChecking=no $USER@$SERVER -p$PORT 'echo "以$USER"'连接到远程主机

PS:禁用主机检查是不安全的做法,您可以添加服务器密钥到您的~/。Ssh/known_host,执行Ssh -keyscan host1命令,将host1替换为需要连接的主机

最新更新