嗨,我在远程服务器上使用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替换为需要连接的主机