Webブラウザからターミナルに接続できる『Shell In A Box』

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とか入れてなかった際(そんなことあるのか?)に重宝するかも?