ブラウザ経由でターミナルに接続(shellinaboxd)

シェアする

出張で自宅サーバーへ少しだけ接続したい場合、宿泊所のネットワークにプロキシーがいると、ssh接続ができなことがあります。自宅サーバーに「ShellInABox」を導入する事で、ブラウザーからの接続が可能です。

インストール

インストールはEPELから行ないます。

# yum list shellinabox --enablerepo=epel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Available Packages
shellinabox.x86_64        2.20-5.el7        epel
# yum -y install shellinabox --enablerepo=epel
   :(省略)
Installed:
  shellinabox.x86_64 0:2.20-5.el7

Complete!

設定ファイル

インストールを行なうと自動で設定ファイルが作成された状態であります。

# cat /etc/sysconfig/shellinaboxd
   :(省略)
USER=shellinabox
GROUP=shellinabox
CERTDIR=/var/lib/shellinabox
PORT=4200
OPTS="--disable-ssl-menu -s /:LOGIN"
   :(省略)

Firewalldの設定

Firewalldに許可を与える為、XMLファイルを作成して許可を与えます。

# vim /usr/lib/firewalld/services/shellinaboxd.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>shellinaboxd</short>
  <description>The shellinaboxd daemon implements a webserver that listens on the specified port.</description>
  <port protocol="tcp" port="4200"/>
</service>
# firewall-cmd --permanent --add-service=shellinaboxd
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh shellinaboxd
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

自動起動と自動停止の設定

systemdによる自動起動と自動停止ができるにします。

# systemctl status shellinaboxd
* shellinaboxd.service - Shell In A Box daemon
   Loaded: loaded (/usr/lib/systemd/system/shellinaboxd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:shellinaboxd(1)
# systemctl start shellinaboxd
# systemctl enable shellinaboxd
Created symlink from /etc/systemd/system/multi-user.target.wants/shellinaboxd.service
 to /usr/lib/systemd/system/shellinaboxd.service.
# systemctl status shellinaboxd
* shellinaboxd.service - Shell In A Box daemon
   Loaded: loaded (/usr/lib/systemd/system/shellinaboxd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2018-06-13 22:52:34 JST; 23s ago
     Docs: man:shellinaboxd(1)
 Main PID: 2172 (shellinaboxd)
   CGroup: /system.slice/shellinaboxd.service
           ├─2172 /usr/sbin/shellinaboxd -u shellinabox -g shellinabox --cert=/var/lib/shellinabox --port=4200 ...
           └─2173 /usr/sbin/shellinaboxd -u shellinabox -g shellinabox --cert=/var/lib/shellinabox --port=4200 ...

これで、ブラウザから「https://サーバ名:4200」で接続できるようになっていると思います。