Shell in a Box が便利だった
Macからはターミナルで解決するし、特に生活に不便を感じないんだが、ちょっとしたファイルサーバーのメンテンス(ファイル消す)とかでMac起動するのもめんどくさい
iOS Safariから使えるターミナル
各種ターミナルのアプリがあるんだが、秘密鍵のインストールとかめんどくさいし。

インストール
sudo apt install shellinabox
しかも手軽にインストールができる。
起動
sudo service shellinabox start
アクセス
open https://127.0.0.1:4200
これでOK。あとはログイン画面が出てくる
アクセスする

https でアクセスする必要がある。
基本的な設定
/etc/default/shellinabox 設定ファイル
基本的な設定ファイルは debianの場合は次の場所に保存されていました。
# 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"
ローカルホストに限定する
デフォルトでは 0.0.0.0 を listen してしまうので、localhsot に限定する。
SHELLINABOX_ARGS="--no-beep --localhost-only"
nginx と組み合わせる。
http 通信なので、 ssl とかめんどくさいことは nginx にリバプロさせる。
location /my.shell/ {
proxy_pass https://localhost:4200//;
}
これで、nginx と組み合わせる事ができる。あと外向きにCertbot でLetsEncyptすれば、SSL問題なく使えそうだ。
nginx に認証を掛ける。
nginx には auth_request ディレクティブがあるので、これを使って認証を掛けることにする。
location /my.shell/ {
auth_request /check_oauth.php;
error_page 401 =302 https://$host/oauth.php?redirect_to=$uri&$query_string;
proxy_pass https://localhost:4200//;
うん、これで安心
auth_request については、以前書きました。→http://takuya-1st.hatenablog.jp/entry/2018/05/08/182127
便利な点
docker のコンテナにssh 入れなくてもぱぱっと状況を見ることできそう。
iOS から使うと便利。
ターミナルをインストールしなくてブラウザで解決するね。
iOS はアプリを入れられないから、足りない機能やちょっとしたツールは、ブラウザで解決する事が多いしこれで安心。

難点
使ってみてわかった問題。
ログインがローカル経由になるのでリモートIPや接続ログが全部リンクローカルアドレスになる。
転送と描画に時間がかかるので、巨大なファイルをcat すると表示終了までに時間がかかりすぎてヤバイ。
公開鍵認証を使うのが大変。踏み台のDockerに入れるべきかもしれない。
追記
プロセスのfork と exec がどうなってるのかなと、ps叩いてみたら、/usr/bin/shellinaboxd が *:4200 で待ち受けて、root で login を呼び出してて、pts/0 を作ってる
ssh とはちょっと違うのでWEBブラウザでSSHというにはちょっと違うかな。
shellin+ 21095 0.0 0.0 37724 5472 ? Ss 17:02 0:00 /usr/bin/shellinaboxd -q ... shellin+ 21096 0.0 0.0 37184 2124 ? S 17:02 0:00 \_ /usr/bin/shellinaboxd -q ... root 23435 0.0 0.0 74232 3484 pts/0 Ss 18:12 0:00 \_ login -p -h 127.0.0.1 takuya 23444 0.1 0.0 26504 11024 pts/0 S 18:12 0:00 \_ -bash takuya 23803 0.0 0.0 38196 3780 pts/0 R+ 18:13 0:00 \_ ps auxf
右クリックメニューで、色を変える

右クリックメニューでキーボードを有効にする

キーボードを常にONにできたらiOSで優秀なターミナルとして動作可能なんだけど。キーボードを常にONにする方法がわからないですね。
iOSの場合は、ランドスケープ(横向き)のすると、キーボードを使いやすい。

2021-11-24 追記
キーボードとカラーについて追記
参考資料
https://www.smarthomebeginner.com/increase-shellinabox-security/