LXDでrfriendsの環境を作ってみました。
今回は、作成したコンテナに外部(home)からsshでアクセスできるようにします。
[home] ----- (internet) ----- [ホスト:50022] - [コンテナ1:22]
[home] ----- (internet) ----- [ホスト:50122] - [コンテナ2:22]
1.コンテナにssh serverのインストール
コンテナ側で以下のコマンドを実行
$ sudo apt install openssh-sever $ exit
ホスト側で以下のコマンドを実行
$ sudo lxc list
rfriendsコンテナのIPV4アドレスが表示される。 xxx.xxx.xxx.xxx.xxxはrfriendsコンテナのIPアドレスとする。
ssh radio@xxx.xxx.xxx.xxx
でrfriendsコンテナにユーザradioでログインできるのを確認。
$ exit
2.コンテナにproxyデバイスを追加
外部からrfriendsコンテナにSSHできるようにする。
ホストのport:50022 -> rfriendsコンテナのport:22
xxx.xxx.xxx.xxx.xxxはrfriendsコンテナのIPアドレス
p50022の名前は任意。
ポートが使われていないか調べる。使われていない場合、表示なし。
$ lsof -i:50022
proxyデバイスを追加
$ sudo lxc config device add rfriends p50022 \ proxy listen=tcp:0.0.0.0:50022 connect=tcp:xxx.xxx.xxx.xxx.xxx:22
設定を削除したいときは
$ sudo lxc config device remove rfriends p50022
3.外部からrfriendsコンテナにssh
ssh radio@yyy.yyy.yyy.yyy:50022
yyy.yyy.yyy.yyyはホストのIPアドレス
アクセスできない場合、firewall等でポートが閉じられていないか調べる。
4.その他
以上で外部からコンテナにSSHできるようになります。
説明のためにセキュリティについては考慮していません。 実際の場面では鍵を作成してアクセスすべきです。
今回の件で、例えばVPS上に複数のコンテナを作成して運用できることがわかりました。
以上