【问题标题】:Trying to create SSH connection using Gitlab CI, Error : SSH Permission denied (publickey,password)尝试使用 Gitlab CI 创建 SSH 连接,错误:SSH Permission denied (publickey,password)
【发布时间】:2021-10-30 14:28:06
【问题描述】:

我在 GitLab 上有一个存储库和一个私有 VPS。我想要做的是当我推送到存储库时,我需要 GitLab/ci 脚本来连接 VPS 服务器。 我试过的是

  1. 使用ssh-keygen登录VPS并生成SSH密钥
  2. 将私钥复制到 Gitlab > 设置 > CI/CD > 变量 > SSH_PRIVATE_KEY
  3. 将公钥复制到 Gitlab > 用户首选项 > SSH 密钥
  4. 并在 gitlab.ci 中使用以下脚本推送提交
    - 'which ssh-agent || ( apk add openssh-client )'
    # Run ssh-agent (inside the build environment)
    - eval $(ssh-agent -s)
    # add ssh key stored in SSH_PRIVATE_KEY variable to the agent store
    - echo "$SSH_PRIVATE_KEY"
    - echo "$SSH_PRIVATE_KEY" > key
    - chmod 600 key
    - ssh-add key
    # make dirs
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan -t rsa 1.2.3.4.5 > ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
    # Remove
    - rm key
  script:
    - ssh user@1.2.3.4.5

=> PS:1.2.3.4.5不是真实的IP地址我只是换了个例子。

  1. 我得到的是user@1.2.3.4.5 : Permission denied (publickey,password).

=> PS:我的分支或标签未受保护或私有

【问题讨论】:

  • 您已将新生成的密钥添加到authorized_keys

标签: ssh gitlab gitlab-ci


【解决方案1】:

在脚本测试中,使用:

ssh -Tv user@1.2.3.4.5

这样,您将看到名为“key”的文件是否被使用。

如果它实际上被命名为“key”(例如,而不是默认的 id_rsa),则需要一个 ~/.ssh/config 文件来引用它:

Host destination
  Hosname 1.2.3.4.5
  User user
  IdentityFile ~/.ssh/key

但在这种情况下,URL 调用将是:

ssh -Tv destination

【讨论】:

    猜你喜欢
    • 2021-02-05
    • 2012-05-03
    • 1970-01-01
    • 2021-05-11
    • 2018-03-01
    • 2019-02-21
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    相关资源
    最近更新 更多