LinuxなどのUNIXマシンを操作する際、SSH接続でコンソールからリモート操作を行うのが一般的だろう。 で、そのSSH接続をWebページ上から行えるツール『Shell In A Box』というものがあるらしいので使ってみることにした。
1.インストール
当然、まずはインストールから。 各ディストリビューション別に、以下のコマンドを実行してインストールを行う。
Debian/Ubuntu
sudo apt-get install openssl shellinabox
RHEL系
sudo yum install openssl shellinabox
2.設定
次に設定作業から。 設定ファイルについてはデフォルトのままでいくが、その場所と内容についてを以下に記載する。
Debian/Ubuntu
test@Test-Ubuntu001:~$ cat /etc/default/shellinabox
# Should shellinaboxd start automatically
SHELLINABOX_DAEMON_START=1
# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=4200
# Parameters that are managed by the system and usually should not need
# changing:
# SHELLINABOX_DATADIR=/var/lib/shellinabox
# SHELLINABOX_USER=shellinabox
# SHELLINABOX_GROUP=shellinabox
# Any optional arguments (e.g. extra service definitions). Make sure
# that that argument is quoted.
#
# Beeps are disabled because of reports of the VLC plugin crashing
# Firefox on Linux/x86_64.
SHELLINABOX_ARGS="--no-beep"
test@Test-Ubuntu001:~$
RHEL系
[root@Test-CentOS003 ~]# cat /etc/sysconfig/shellinaboxd
# Shell in a box daemon configuration
# For details see shellinaboxd man page
# Basic options
USER=shellinabox
GROUP=shellinabox
CERTDIR=/var/lib/shellinabox
PORT=4200
OPTS="--disable-ssl-menu -s /:LOGIN"
# Additional examples with custom options:
# Fancy configuration with right-click menu choice for black-on-white:
# OPTS="--user-css Normal:+black-on-white.css,Reverse:-white-on-black.css --disable-ssl-menu -s /:LOGIN"
# Simple configuration for running it as an SSH console with SSL disabled:
# OPTS="-t -s /:SSH:host.example.com"
[root@Test-CentOS003 ~]#
次に、CSRの設定を行う。 以下のコマンドを実行し、『Shell In A Box』からOpenSSHに接続できるようにする。
$ sudo cd /var/lib/shellinabox
$ sudo openssl genrsa -out server.key 1024
$ sudo openssl req -new -key server.key -out server.csr
[root@Test-CentOS003 shellinabox]# cp server.key server.key.org
[root@Test-CentOS003 shellinabox]# openssl rsa -in server.key.org -out server.key
[root@Test-CentOS003 shellinabox]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
[root@Test-CentOS003 shellinabox]# cat server.crt server.key > certificate.pem
最後に、『Shell In A Box』のサービスを立ち上げて準備完了!
Debian/Ubuntu
sudo service shellinabox start
RHEL系
[root@Test-CentOS003 shellinabox]# service shellinaboxd start
shellinaboxd を起動中: [ OK ]
3.SSH接続する
さて、それでは実際にアクセスしてみよう。 アクセス先のURLは、「http://サーバのホスト名:設定したポート番号」でできる。今回の場合、設定ファイルの内容はデフォルトのまま変えていないので4200番ポートが使われている。
確かに、Webページからコンソールへアクセス可能となっているようだ。 作業用のマシンにTeratermとか入れてなかった際(そんなことあるのか?)に重宝するかも?