Docker 容器内的 Git 权限被拒绝

Hap*_*der 4 git ssh shell jenkins docker

我使用 shell 脚本作为 Jenkinsfile 的一部分来运行数据库迁移。shell 脚本在文件中设置条目后尝试克隆存储库known_hosts。我正在做以下事情:

    #!/bin/bash

    set -e

    # Workaround old docker images with incorrect $HOME
    # check https://github.com/docker/docker/issues/2968 for details
    if [ "${HOME}" = "/" ]
    then
      export HOME=$(getent passwd $(id -un) | cut -d: -f6)
    fi

    mkdir -p ~/.ssh

    echo '
    github.com ssh-rsa KEY
  ' >> ~/.ssh/known_hosts

    git clone git@github.com:Organization/migrations.git /tmp/database-migrations

   Execute Migration
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误

Permission denied (publickey).
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题呢?

顺便说一句,当我检查已知的主机文件时,我发现文件中已添加一个条目,其 IP192范围为(本地 IP)。这是造成问题的原因吗?

z14*_*z14 5

不是因为known_hosts 文件。正如它所说,我认为这是你的私钥。

您是否已将正确的私钥复制到容器中?因为我在你的剧本中没有看到它。

您可以通过键入以下内容来测试您的密钥:

ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)

我相信你也会看到同样的结果。

您可以检查 github 上的此链接错误:权限被拒绝(公钥)

  • 那么对于容器来说如何解决呢? (5认同)