Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ssh-jump]rootログイン用の鍵を実行時に作る #21

Open
5 tasks
lobin-z0x50 opened this issue May 19, 2022 · 2 comments
Open
5 tasks

[ssh-jump]rootログイン用の鍵を実行時に作る #21

lobin-z0x50 opened this issue May 19, 2022 · 2 comments

Comments

@lobin-z0x50
Copy link
Member

lobin-z0x50 commented May 19, 2022

やりたいこと

rootログイン用の鍵を実行時に作る

困りごと

いまは コンテナビルド時に作っており、同じ鍵で他のコンテナにはいれてしまう。
https://github.com/neogenia-jp/neo-dockers/pull/15/files#diff-e92483b028948bea15bad84579ee21118be702a530bcbbfcdf2ceb16d10065e2R27
これではセキュリティ的によろしくないので、スタートアップスクリプトで作るようにする。
鍵ファイルは volume マウントしておいて、永続化する。

ホストキーも出来れば スタートアップスクリプトで更新したい。

エンドユーザへの影響度

  1. [なし] エンドユーザへの影響は全くない
  2. [小] 困りごとを容易に回避することができる。業務への支障が少ない。
  3. [中] 業務への支障があるものの、困りごとを回避する方法がある。
  4. [大] 業務を行うことができない、または重大な支障がある。

3
セキュリティリスク

対応

対応方針

  • root 用のキー再生成をスクリプト化しておき、スタートアップ時に呼び出す
  • ホストキーの再生成も別途スクリプト化しておく。
    • それぞれ、コンテナ起動後も、任意のタイミングで呼び出して再生成できるようにしておく
  • 鍵ファイルは Volume に保存できるようにしたい。 compose.yaml の書き方をREADMEに書いておく

タスクバラシ

  • rootログイン用の鍵ペアを再生成する手順をシェルスクリプトにして、Dockerコンテナに配置
  • startup.sh で それを呼ぶ。正常終了したらロックファイルを作成し、2回目以降はロックファイルがあれば呼ばないようにする。
  • ホストキーの更新処理をシェルスクリプトにして、Dockerコンテナに配置
    cd /etc/ssh/
    rm -f ssh_host_*key*
    ssh-keygen -A
  • startup.sh でホストキーの更新スクリプトも呼ぶ。2回実行しないように。
  • 鍵ファイルは Volume に保存できるようにする。Dockerfile に匿名ボリュームで定義
@lobin-z0x50
Copy link
Member Author

なんか来た。
image

@lobin-z0x50
Copy link
Member Author

rootログイン用の鍵ペアを再生成する手順

運用環境ではこの手順を必ず適用すること。

docker exec -w /root/.ssh -ti ssh-jump bash

# 既存の鍵ペアを退避
mv id_ecdsa id_ecdsa.old
mv id_ecdsa.pub id_ecdsa.pub.old
ls

# 鍵ペアを再作成
ssh-keygen -t ecdsa -f id_ecdsa -N ''
ls

cat id_ecdsa.pub > authorized_keys

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant