2015年1月23日金曜日

Docker上にSSH接続できるコンテナを作成する

Docker上にSSH接続ができるコンテナを作成する手順を記載する。
コンテナOSにはUbuntuを使用している。

まずコンテナを立ち上げてコンソールに接続する

$ docker run --name コンテナ名 -i -t ubuntu /bin/bash
--nameでは適当なコンテナ名を設定する

コンテナにSSHサーバ機能をインストールする

# apt-get install openssh-server
openssh-serverを使ってみた。

接続元となる端末でSSH鍵を作成する

Windows8.1上でPuTTYを使用して作成した。
鍵作成にはputtygen.exeを使用する。
"C:\Program Files (x86)\WinSCP\PuTTY"からputtygen.exeを起動する。
「generate」を押して鍵を作成し「公開鍵(public key)」と「秘密鍵(private key)」を保存する。


















コンテナに作成した公開鍵(public key)を登録する

.sshディレクトリを作成し、authorized_keysファイルを作成し公開鍵の文字列を記載する
# mkdir ~/.ssh
# vi authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAn・・・・・・・・・・・・・・・・
ssh-rsa以降の文字列は公開鍵ファイルの文字列を記載する
今回はrootユーザ向けの設定。

Ubuntuコンテナをイメージとして保存する

docker上でイメージ作成コマンドを実行する
$ docker commit コンテナ名 イメージ名
適当なイメージ名を設定する。(コンテナ名はこれまでの手順で作成したものを設定)

作成したイメージを立ち上げる

$ docker run -d --name コンテナ名 -p XXXX:22 イメージ名 /usr/sbin/sshd -D
適当なコンテナ名を設定する。(イメージ名は上記の手順で作成したものを設定)
XXXXには他で使用していない適当なポート番号を設定する。

立ち上げたコンテナにSSH接続する

PuTTY Configurationの「Session」でHost Name(or IP address)にDockerサーバのIPアドレスを指定する。
Port番号は22から上記で設定したものに変更する。


















「Conection」→「SSH」→「Auth」でPrivate key file for authenticationに秘密鍵ファイルを設定する。


















「Open」をクリックするとコンテナにSSH接続できる。

0 件のコメント:

コメントを投稿