GeminiPDAのときから使っていましたが、AndroidでLinux環境を使うためのアプリ Termux を ASTRO SLIDE にインストールしました。
Table of Contents
Googgle Play版(終了)と F-Droid版(最新)の Termux
Termuxは、Google Playからインストールできるバージョンと F-Droid 経由でインストールするバージョンの2つが存在しています。
Google Playで公開されている Termux は、色々な制限で新しいAndroid(SDK Level 29以上)での動作に対応できず古いバージョンで更新も停止しています。
Termuxの公式ページからも Google Play のリンクが消えています。
最初は Google Play版を ASTRO SLIDE にインストールしましたが、リポジトリの更新が出来ないなどの不具合がありました。
不具合回避のため、今回は F-Droid で配布されている Termux をインストールしました。
F-Droid版をインストールする前に、Google Play版をアンインストールします。
- F-Droid 公式ページから F-Droid をインストール
- F-Droid で Termux を検索してインストール
F-Droid 版の Termux は、更新が続いており リポジトリなども最新に追従しています。
ASTRO SLIDE で Termux を快適に使用するには F-Droid 版をオススメします(2022年4月現在の状態)。
ただし、F-DroidはGoogle Play以外からインストールする「野良アプリ」に分類されます。ダウンロード元の確認やウィルススキャンなどご利用は自己責任でお願いいたします。
Termux 環境の構築
F-Droid 版のTermuxがインストールできたら、環境を構築します。
追加パッケージのインストール
通常使用するツールをパッケージマネージャでインストールします。
1 2 3 4 | apt update apt upgrade apt install git python perl emacs vim wget |
サーバーのメンテナンスなどでは、vim を使うことが多いのですが、ESCの入力などの面倒さから、Termuxでは emacs を使用しています。
GeminiPDA の時には、emacsが若干重く感じましたが、 ASTRO SLIDE の環境では動作も快適で不便を感じませんでした。
ストレージにアクセスできるように設定
termux のホームディレクトリは /data/data/com.termux/files/home にあります。
このままではストレージへのアクセスでパスの切り替えが面倒なので、ホームディレクトリにストレージへのリンクを作成します。
1 2 | termux-setup-storage |
これでホームディレクトリに storage ディレクトリができて、ストレージにアクセスしやすくなります。
Termux にSSH接続できるように設定
ASTRO SLIDE Termux に、外部からsshアクセスするための設定をしていきます。
1 2 | apt install openssh |
Open SSHパッケージをインストールしたら、ssh-keygen で秘密鍵と公開鍵を生成します。
1 2 | ssh-keygen -t rsa -b 2048 |
これが Termux オリジナルの秘密鍵と公開鍵になります。
他で使用している 公開鍵を使用する場合には、ストレージの Download などに保存して、authorized_keys に追記します。
さらにパスワードを設定しておきます。
1 2 | passwd |
最初は id_rsa の秘密鍵のみで接続しようとしましたが、上手く認証が通りませんでした。
passwd で適当なパスワードを設定しておきます。
他の端末で使用している秘密鍵で接続するには、公開鍵を authorized_keys に追加で登録します。
1 | cat ~/storage/Download/id_rsa.pub >> ~/.ssh/authorized_keys |
これで今まで使用していた別の秘密鍵で接続ができます。
sshdの起動と停止
1 2 | $ sshd |
これで sshdが起動し外部から接続できます。
sshd を停止する場合には以下のコマンドを実行します。
1 2 | $ pkill sshd |
ifconfig で ASTRO SLIDE のIPアドレスを確認します。
1 | ifconfig | grep inet |
sshdへの接続
これで外部からssh接続ができるようになりますが、以下の注意点があります。
- ssh接続はRSA認証で接続する(id_rsaを使用して接続)
- sshの接続ポートは 8022
- ユーザー名は無指定でも接続可能。ユーザー名が必須の場合には user など適当に指定
外部の sshクライアントからの接続例は次の通りです。
1 | ssh -p8022 user@192.168.10.78 |
リモートメンテに必要な環境を整える
1 2 3 | apt install curl pip install ansible |
これで Cloudfleare や AWS,Azure のAPIをたたいたり、Ansibleで構成管理もできるようになります。
X-Window 環境のインストール
Android TermuxでX-Window XSDLを使うための方法は、GeminiPDA の時と同じなので、記事を見ながら設定しました。
今回は、F-Droid版の Termux で環境を構築しましたが、基本的には GeminiPDAの時と同じ手順で Termux 環境を作りました。
これで、どこでもLinux環境がさわれるようになりました。