从Gitlab CI:ssh_askpass:exec(/usr/X11R6/bin/ssh askpass)到远程服务器的ssh:没有这样的文件或目录。权限被拒绝(公钥、密码)

从Gitlab CI:ssh_askpass:exec(/usr/X11R6/bin/ssh askpass)到远程服务器的ssh:没有这样的文件或目录。权限被拒绝(公钥、密码),ssh,raspberry-pi,gitlab,gitlab-ci,ssh-keys,Ssh,Raspberry Pi,Gitlab,Gitlab Ci,Ssh Keys,我使用GitLab for CI/CD,并且我想使用ssh连接到Raspberry Pi进行部署。 我生成了一个新的ed25519ssh密钥对,将私钥添加到变量中,将公钥添加到部署密钥中 我的gitlab ci.yml文件如下所示: deyployment: stage: deploy image: ubuntu:latest before_script: - 'which ssh-agent || ( apt-get update -y &&

我使用GitLab for CI/CD,并且我想使用ssh连接到Raspberry Pi进行部署。 我生成了一个新的
ed25519ssh
密钥对,将私钥添加到变量中,将公钥添加到部署密钥中

我的
gitlab ci.yml
文件如下所示:

deyployment:
    stage: deploy
    image: ubuntu:latest
    before_script:
      - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
      - eval $(ssh-agent -s)
      - echo "$SSH_PRIVATE_KEY" > key
      - chmod 600 key
      - ssh-add key
      - rm key
      - mkdir -p ~/.ssh
      - chmod 700 ~/.ssh
      - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
    script:
      - ssh -o StrictHostKeyChecking=no pi@IP_ADDRESS 'cd dockerproject2 && mkdir test'
    tags:
      - ssh
我在运行部署作业后获得以下输出:

$ ssh -o StrictHostKeyChecking=no pi@IP_ADDRESS 'cd dockerproject2 && mkdir test'
ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory
pi@IP_ADDRESS: Permission denied (publickey,password).
现在我只使用ssh密钥。我不确定,但是输出
权限被拒绝(公钥、密码)
看起来树莓Pi也需要密码


我还尝试使用
~/.ssh
文件夹中的
id\u rsa
键。我生成了文件夹
~/.ssh/authorized\u keys
,并在那里保存了
id\u rsa.pub
文件的副本。这给了我同样的输出。

哇,这有点愚蠢。我出现此错误是因为我试图使用shell运行程序运行部署。但它需要与docker runner一起运行。至少对我来说是这样