1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerでホストのssh鍵をゲストOSと共有する際の注意点

Posted at

まとめ

opensshのバージョン7.8以降で生成した鍵は後方互換性がない

経緯

Dockerコンテナ上でgithubからcloneを実行したかった。
SSH鍵をコンテナ毎に生成するのは現実的ではないので、
ホストOSのSSH鍵(github登録済)を使おうと思った

何が起きたか

docker-composeとDockerfileを記述して、
コンテナ上で鍵ファイルを閲覧できるところまでは確認。
任意のディレクトリでclone実行したところcloneに失敗

生成されたキーがおかしい?

ゲストOS上で直接ssh-keygenで生成したキーは使用できるか確認したところ特に問題なくcloneに成功。
ホスト上で作成した鍵がおかしい?と思ったが、ホスト上でもcloneコマンドは成功している。
両者のid_rsaをlessで確認したところ、下記の違いが確認された。

ホスト
-----BEGIN OPENSSH PRIVATE KEY-----
ゲスト
-----BEGIN RSA PRIVATE KEY-----

ムムム、ヘッダの内容が若干違う?

OpenSSHの確認

opensshのバージョンは、、、
ホスト

OpenSSH_7.9p1, LibreSSL 2.7.3

ゲスト

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

それっぽい違いがあるぞ、、、?!
調べたらすぐこんな記事が見つかりました。
https://dev.classmethod.jp/server-side/network/openssh78_potentially_incompatible_changes/
クラスメソッドさんありがとうございます!

openssh7.8以降を利用している際に後方互換性のあるキーを作成したい場合は-m PEMを付与する

ssh-keygen -m PEM

生成されたキーのヘッダを確認したところ旧バージョンの形式になってること確認
cloneも無事完了

ダイナミックな変更で驚いたが、オプションで解決できてよかったよかった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?