当在Bitbucket Pipeline中遇到"主机密钥不匹配(优先使用ECDSA而非RSA)"错误时,可以尝试以下解决方法:
pipelines:
default:
- step:
name: Build and Deploy
image: node:12.18.0
script:
- eval "$(ssh-agent -s)"
- echo "$ECDSA_PRIVATE_KEY" | ssh-add -
- ssh-keyscan -H example.com >> ~/.ssh/known_hosts
- ssh -i id_ecdsa user@example.com "command"
pipelines:
default:
- step:
name: Build and Deploy
image: node:12.18.0
script:
- eval "$(ssh-agent -s)"
- echo "$RSA_PRIVATE_KEY" | ssh-add -
- ssh-keyscan -H example.com >> ~/.ssh/known_hosts
- ssh -i id_rsa user@example.com "command"
请确保将上述代码中的$ECDSA_PRIVATE_KEY
或$RSA_PRIVATE_KEY
替换为你实际的私钥,并将example.com
和user@example.com
替换为你要连接的实际主机。
上述代码示例假设你的私钥存储在Bitbucket的环境变量中,并将其添加到ssh-agent中。ssh-keyscan
命令用于在known_hosts文件中添加远程主机的公钥。
如果上述解决方法不能解决问题,请检查你的SSH配置以确保主机密钥和私钥正确匹配,并与远程主机管理员联系以了解支持。