Skip to content

kano-lab/dpp-ssh-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DPP SSH 演習環境

このリポジトリはSSH認証の演習を行うためのDocker環境です。パスワード認証と公開鍵認証の両方を学習することができます。

Warning

Host側はWSLでは動作しません!Linux環境での実行を推奨します。

概要

この演習環境では、各学生に以下の2つのユーザーアカウントが提供されます:

  • パスワード認証用ユーザー ([学籍番号]pass): パスワード認証でSSH接続可能
  • 公開鍵認証用ユーザー ([学籍番号]key): 公開鍵認証のみでSSH接続可能

必要なもの

  • Docker
  • Docker Compose

セットアップ手順

  1. リポジトリをクローンします:

    git clone https://github.com/kano-lab/dpp-ssh-practice.git
    cd dpp-ssh-practice
  2. ./ssh-server/data/students.csv ファイルを作成し、以下のように学籍番号を追加します:

    70112001
    70112002
    ...
    
  3. 環境を起動します:

    ./run.sh
  4. コンテナが起動した後、ssh-logs/auth.log ファイルが生成されたことを確認したのち、以下のコマンドを実行することで、ユーザーごとのステータスを確認できます。

    docker logs -f watcher-ssh
  5. 終了時は以下のコマンドでコンテナを停止します。

    docker compose down

環境構成

  • run.sh: 環境起動スクリプト
  • compose.yaml: Docker Compose設定ファイル
  • Dockerfile: SSHサーバーのDockerイメージ定義
  • setup_users.sh: ユーザー設定スクリプト
  • start.sh: コンテナ起動スクリプト
  • students.csv: 学籍番号リスト
  • ssh_config_match.conf: SSHサーバー設定ファイル(keyユーザーが公開鍵認証できるようにするためのconfig)

使用方法

1. パスワード認証ユーザーとしてログイン

ssh -p 2222 [学籍番号]pass@[ホストIP]

例:

ssh -p 2222 [email protected]

パスワードは学籍番号と同じです。

2. 公開鍵認証ユーザーとしてログイン

まず、クライアント側で公開鍵と秘密鍵のペアを生成します(まだ持っていない場合):

# id_ed25519_practiceというファイル名で鍵を生成
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_practice

次に、パスワード認証ユーザーとしてログインし、公開鍵認証ユーザーのauthorized_keysファイルに公開鍵を設定します:

# パスワード認証でログイン
ssh -p 2222 70112001pass@[ホストIP]

# パスワードを使ってkeyユーザーに切り替え
su 70112001key

# .sshディレクトリの権限を確認
ls -la ~/.ssh
# 権限が700でない場合は修正
chmod 700 ~/.ssh

# 公開鍵を追加
echo "ssh-ed25519 AAAA..." > ~/.ssh/authorized_keys
# または viエディタで編集
vi ~/.ssh/authorized_keys

# authorized_keysファイルの権限を確認
chmod 600 ~/.ssh/authorized_keys

最後に、公開鍵認証でログインを試みます:

ssh -i ~/.ssh/id_ed25519_practice -p 2222 70112001key@[ホストIP]

管理者用アカウント

デバッグと管理目的で、管理者用のユーザーアカウントが用意されています:

  • ユーザー名: kanolab
  • パスワード: kano2333
  • 権限: sudo権限付き(管理者として利用可能)
# 管理者としてログイン
ssh -p 2222 kanolab@[ホストIP]

# 管理者権限でコマンド実行
sudo [コマンド]

このアカウントは環境の管理、トラブルシューティング、デバッグ目的で使用してください。

セキュリティ設定

  • passユーザー: パスワード認証のみ有効
  • keyユーザー: 公開鍵認証のみ有効(パスワード認証は無効)
  • 各ユーザーは別々のグループに所属
  • .sshディレクトリは700、authorized_keysファイルは600の権限に設定
  • ホームディレクトリは750の権限に設定

ローカルマシンでのテスト

ローカルでコンテナを起動したのちに、

# コンテナの起動
./run.sh

別のセッションを起動し、ホストIPにlocalhostを指定してログインを試みます。(公開鍵認証ユーザーも同じです)

ssh -p 2222 70112001pass@localhost

ログ

SSHの認証ログは以下のファイルで確認できます:

cat /var/log/ssh.log

トラブルシューティング

公開鍵認証でログインできない場合:

  1. 権限を確認:

    ls -la ~/.ssh # 700
    ls -la ~/.ssh/authorized_keys # 600
  2. SSHサーバーのデバッグログを確認:

    # Dockerコンテナ内で実行
    cat /var/log/ssh.log
  3. 詳細なデバッグ情報を含めてSSH接続を試す:

    ssh -vvv -i ~/.ssh/id_ed25519_practice -p 2222 [学籍番号]key@[ホストIP]

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

開発

Mizuki Baba [email protected]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •