【问题标题】:ssh to remote server from Gitlab CI: ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory. Permission denied (publickey,password)从 Gitlab CI SSH 到远程服务器: ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): 没有这样的文件或目录。权限被拒绝(公钥,密码)
【发布时间】:2020-05-27 03:54:35
【问题描述】:

我将 GitLab 用于 CI/CD,我想通过 ssh 连接到我的 Raspberry Pi 进行部署。 我生成了一个新的ED25519 SSH 密钥对,将私钥添加到变量中,将公钥添加到部署密钥。

我的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 密钥。我不确定,但输出 Permission denied (publickey,password) 看起来树莓派也需要密码。

我还尝试使用~/.ssh 文件夹中的id_rsa 键。我生成了文件夹~/.ssh/authorized_keys 并在那里保存了id_rsa.pub 文件的副本。这给了我相同的输出。

【问题讨论】:

    标签: ssh raspberry-pi gitlab gitlab-ci ssh-keys


    【解决方案1】:

    哇,这有点愚蠢。我收到此错误是因为我尝试使用 shell 运行程序运行部署。但它需要与 docker runner 一起运行。至少在我的情况下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-13
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 2021-03-04
      • 2020-01-22
      相关资源
      最近更新 更多