Web ブラウザから SSH リモートログインできるサーバ(GateOne を使用)(Ubuntu 18.04上)
ユースケース: Web ブラウザの側では何も設定しない(プラグインのインストールなども行わない)で,ssh リモート接続ができるようにしたい
そのために,中継用のサーバを立てる. HTML5対応の Web ブラウザを使用.
要点は次の通り
- Ubuntu を使用
- ファイヤウオール (ufw) を稼働させる
- GateOne を中継サーバとして,ウエブブラウザを用いたリモートログインできるように設定する
前準備
Ubuntu のインストール
Ubuntu のインストール手順は,「別のページ」で説明している.
Ubuntu のシステム更新
次のコマンドを実行.
sudo apt -y update
sudo apt -yV upgrade
sudo shutdown -r now
Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)
次のコマンドを実行.
sudo apt -y update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
Git のインストール
次のコマンドを実行.
sudo apt -y update
sudo apt -y install git
ssh によるリモートアクセスの設定(Ubuntu 上)
要点: openssh-server をインストールする. Ubuntu 上のファイヤウオールを有効にし,予期せぬアクセスを抑止する
- ファイヤウオール(ufw)を有効に
sudo ufw enable
- ssh を使っている場合にはこの時点で,ssh アクセスを許可しておく
sudo ufw allow 22 sudo ufw default DENY
- ufw の設定確認
ポート22についての通信が開放されていることを確認.
sudo ufw status
- /etc/hosts.allow は,次の行を含むように編集
*GateOne を経由せずに,ssh でリモートログインして使いたいときは,/etc/hosts.allow ログイン元の IP アドレスについての設定も含めておく必要がある.そして,いくつかの設定を行っておくこと.
sshd: 127.0.0.1
- /etc/hosts.deny は,次のように編集
ALL: ALL
- openssh server のインストール
sudo apt -y install openssh-server
- ポートスキャンを行い,ufw の設定を再確認
ポート22についての通信が開放されていることを確認.
sudo apt install nmap nmap localhost
SSH によるリモートログインを行うアカウントの作成と設定
これは,SSHによるリモートログインの受付のために用いるユーザである.
ここで作成するユーザ名: ai
- 新規ユーザの作成とパスワードの設定
sudo adduser --uid 1234 --home /home/ai ai
* この操作がうまく行かなかったときは「sudo deluser ai; sudo rm -rf /home/ai」のように操作した後に,この操作をやり直す.
- パスワードの設定と,SSH キーペアの作成と, authorized_keys への公開鍵(id_rsa.pub)の追加
sudo -u ai -i mkdir ~/.ssh cd ~/.ssh ssh-keygen -t rsa -b 4096 -C "<指紋作成に用いる文字列>" # 保存先については,Enter キー.パスフレーズについては適切に設定 chmod 700 ~/.ssh cat id_rsa.pub >> authorized_keys
- 「sudo -u ai -i」により,ユーザ ai で作業していたのを,元に戻す.
exit
- 試しに ai ユーザでログインしてみる
ssh ai@localhost
GateOne のインストールとテスト実行
ここでの設定:使用するポート番号 8443
GateOne のインストール
次のコマンドを実行.
cd /tmp
git clone https://github.com/liftoff/GateOne
cd GateOne
python3 setup.py build
sudo python3 setup.py install
ufw で GateOne ポートの解除
次のコマンドを実行.
sudo ufw allow 8443

GateOne の起動
次のコマンドを実行.
sudo gateone --port=8443
ポートスキャンを行い,ufw の設定を再確認
ポート8443 についての通信が開放されていることを確認.
nmap localhost
Web ブラウザから使ってみる
Web ブラウザで,次のURLを指定.GateOne の画面が開くことを確認.
https://127.0.0.1:8443
GateOne サーバを立てて,Webブラウザによるリモートログインを行う
- GateOne サーバの起動
gateone --port=8443 --user_dir=$HOME --disable_ssl
- 試しに,Webブラウザからリモートログインしてみる
Web ブラウザで,次のURLを指定
http://<IP アドレス>:8443
- Web ブラウザで「Terminal: SSH」をクリック
- 「Host/OP or ssh:// URL [localhost]:」に対しては,Enter キー
- 「Port [22]:」に対しては,Enter キー
実運用
- ポート番号は 8443 である必要はない
- 必要のないときは,GateOneサーバを止める
- /etc/hosts.allow, /etc/hosts.deny でアクセス制限する
- chroot による隔離を行う.