gitlabランチャーでSSH配布サーバーを試みたときに権限が拒否されました。

gitlabランチャーでSSH配布サーバーを試みたときに権限が拒否されました。

このパイプラインを使用して、gitlab ciパイプラインのサーバーにgitlabリポジトリを展開しようとしています。

stages:
  - deploy

deploy:
  stage: deploy
  only: 
    - main
  before_script:
    - apk add --update --no-cache openssh
    - install -m 600 -D /dev/null ~/.ssh/id_rsa
    - echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/id_rsa
    - cat ~/.ssh/id_rsa
    - ssh-keyscan -H $SSH_HOST > ~/.ssh/known_hosts
    - echo $SSH_USER
    - echo $SSH_HOST
  script:
    - ssh $SSH_USER@$SSH_HOST "cd $WORK_DIR && git checkout $MAIN_BRANCH && git pull && exit"
  after_script:
    - rm -rf ~/.ssh

変数名には予想データが含まれており、実行後にそのランチャーに保存された秘密鍵をデバッグしましたが、接続しようとしているbefore_scriptコンピューター上のものと同じように見え、他のすべての変数には正しい値が含まれています。

ただし、このパイプラインを実行すると、展開サーバーにSSH経由で接続しようとすると、これらのエラーが発生します。

Permission denied, please try again.
Permission denied, please try again.
SSH_USER@SSH_HOST : Permission denied (publickey,password).

(理解を助けるために、user、hostの値は変数名に置き換えました。)

奇妙なことは、問題なくパスワードなしで自分のコンピュータからこのサーバーにSSH経由で接続できることです。

docker gitlab runerのOSはAlpine、展開サーバーのOSはですDebian 11

配布サーバーが正しい秘密鍵を使用してこのSSHログインを認識しない理由を知っている人はいますか?

ベストアンサー1

おすすめ記事