web-dev-qa-db-ja.com

Dockerロードキー「/root/.ssh/id_rsa」:無効な形式

サブモジュールが含まれているリポジトリを複製しようとしています。メインリポジトリは正常に複製されていますが、dockerfileで_git submodule update --init --recursive_を実行すると、サブモジュールがスローしてエラーが発生します。

_fatal: clone of '[email protected]:jkeys089/lua-resty-hmac.git' into submodule path '/tmp/third-party/lua-resty-hmac' failed
Failed to clone 'third-party/lua-resty-hmac'. Retry scheduled
Cloning into '/tmp/third-party/lua-resty-jwt'...
load pubkey "/root/.ssh/id_rsa": invalid format
Warning: Permanently added the RSA Host key for IP address '140.82.118.3' to the list of known hosts.
Load key "/root/.ssh/id_rsa": invalid format
[email protected]: Permission denied (publickey).
_

画像にはこれがあります

_# authorise ssh Host
RUN mkdir /root/.ssh/ \
    && chmod 700 /root/.ssh \
    && ssh-keyscan github.com > /root/.ssh/known_hosts

# add key and set permission
RUN echo "${SSH_PRIVATE_KEY}" >> /root/.ssh/id_rsa \
    && echo "$ssh_pub_key" > /root/.ssh/id_rsa.pub \
    && chmod 600 /root/.ssh/id_rsa.pub \
    && chmod 600 /root/.ssh/id_rsa
_

サブモジュールを制御できません。 _[email protected]_からhttpsに変更してサブモジュールを取得できるかどうかはわかりません。

_GITHUB_TOKEN_ルートを使用してみました

_# start up git and clone
RUN git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/" \
    && git clone https://github.com/GluuFederation/gluu-gateway.git /tmp \
    && cd /tmp/ \
    && git submodule update --init --recursive
_

そして、以下はビルドコマンドの一部です。 build --build-arg GITHUB_TOKEN=${GITHUB_TOKEN} --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" --build-arg ssh_pub_key="$(cat ~/.ssh/id_rsa.pub)"

これを手伝ってください。それは非常にイライラします。 :(

2
Shammir

キーが「無効な形式」の場合は、 古いPEM形式 を使用して再生成してください。

_ssh-keygen -m PEM -t rsa -P "" 
_

適切な認証のために、公開鍵をGitHubアカウントに必ず追加してください。

OP Shammir 追加 コメント内

問題は、ビルド中にホストマシンからdockerイメージに何もコピーされないことだと思います。

docker build --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)"空を返す 」では、Shammirは _dockito/vault_ を使用して秘密鍵を管理しますが、「AddKeysToAgent」に構成することもできます。秘密鍵がパスフレーズで保護されていない場合は必要ありません(上記のコマンドのように)

1
VonC