LoginSignup
4
2

AndroidデバイスをLinuxサーバーに変える (1) Termuxとsshで作業を開始

Posted at

はじめに

Androidで動作するクライアントアプリとWebサーバーとの組み合わせで動作するサービスを構築したときに、WebサーバーをAWSなどで公開してデモ環境を構築するのは一手間かかる。また、そのデモ用のWebサーバーのセキュリティーやメンテナンスなどもあまり考えたくない。

デモのための環境は手元でサクッと構築できるのが一番である。そのデモ環境を人に渡す場合もAndroid機器を渡すだけで終了するのであればシンプルに終了する。このよう要求を満たすデモ環境を用意するために、Androidで動作するLinux環境を用意し、そこにデモ用のWebサーバーを構築することにした。

Androidデバイスを手軽にLinux環境に変える方法として、Termuxのインストールと設定、さらにはMacや他のPCからのSSH接続設定までのプロセスを解説する。この記事では、Androidデバイス上でTermuxを使ってLinux環境を構築し、OpenSSHをインストールして外部からのSSH接続を可能にするまでの手順を紹介する。

AndroidにTermuxをインストールし、Linux環境を構築する

まず、AndroidデバイスにTermuxアプリをインストールする。Google PlayストアまたはF-DroidからダウンロードできるがGoogle PlayストアのTermuxの更新はストップしているため最新のTermuxをインストールするためにはF-Droidからインストールするのが良いだろう。

  1. F-Drodアプリをインストールする
  2. F-Droidアプリから Termux をインストールする

Termuxのインストールが完了したら、Androidのアプリ一覧でTermuxを選択してアプリを開き、以下の初期設定コマンドを実行する。

$ pkg up
$ termux-setup-storage

これらのコマンドは、Termuxのパッケージを最新状態に更新し、ストレージへのアクセス権を設定するものである。

SSHサーバーの設定と接続

ユーザーIDの確認

Termuxで作業を進めるにあたり、まず現在のユーザーIDを確認する。

$ id
uid=10177(u0_a177) gid=10177(u0_a177) groups=10177(u0_a177),3003(inet),9997(everybody),20177(u0_a177_cache),50177(all_a177)

このコマンドは、Termuxが割り当てたユーザーID(u0_a177)を表示する。このIDは後ほどSSH接続時に使用する。

パスワードの設定

次に、SSH接続に必要なパスワードを設定する。

passwd

この手順により、SSH接続時の認証情報を確立する。

ネットワークアドレスの確認

SSH接続を行うには、ネットワーク上のデバイスアドレスを知る必要がある。

$ ifconfig
dummy0: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
        inet6 fe80::3ceb:aeff:fe44:3956  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  ...
...
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.81  netmask 255.255.255.0  broadcast 192.168.1.255
...

このコマンドは、デバイスのIPアドレスを含むネットワーク情報を表示する。ここで表示されるIPアドレス(192.168.1.81)をメモしておく。

OpenSSHのインストール

TermuxにOpenSSHをインストールすることで、SSHサーバー機能を追加する。

$ pkg install openssh

この操作により、SSHサーバーの設定と鍵の生成が自動で行われる。

sshdの起動

インストール後、SSHサーバーデーモンを起動する。

$ sshd

このコマンドは、TermuxがSSH接続を受け入れるようになる。

ホストからのSSH接続

Macや他のPCからTermuxのSSHサーバーに接続するには、以下のコマンドを使用する。

$ ssh -p 8022 ユーザーID@デバイスのIPアドレス

今回の場合なら

$ ssh -p 8022 u0_a177@192.168.1.81

ユーザーIDとデバイスのIPアドレスは、前の手順で確認したものを使用する。

sshdの自動起動設定

Termuxを起動するたびに自動でsshdを起動させるため、.bashrcに起動コマンドを追記する。

pkg install vim
vi ~/.bashrc

ファイルの末尾にsshdと追記し、保存する。

スリープモード時の接続

Androidがスリープモードに入った場合はSSH接続が切れてしまう。SSH接続を維持するためには、以下のコマンドを実行する。

$ termux-wake-lock

この設定を解除したい場合は、下記のコマンドを実行する。

$ termux-wake-unlock

参考情報

この記事で紹介した内容に関するさらなる情報は、以下のリンクから参照できる。

Androidデバイスを用いてLinux環境を構築し、外部からのSSH接続を可能にするこのプロセスを通じて、リモート作業の幅が大きく広がるだろう。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2