/

AndroidにTermuxを入れてSSHで入ってLinux環境を作る【まとめ版】

TermuxとCodeBoard
TermuxとCodeBoard

このブログでTermuxを使ってAndroidにLinux環境を作る話を何個か書きました。

上記のように似たような記事ばかりで書いた私もよくわからなくなりました。

TermuxでLinux環境を作るために自分のブログを調べても混乱するばかりなので今回は総まとめというか、私にとって必要な部分だけを今回の記事でまとめときます。

0.前提条件

今回のまとめはWi-Fi環境下で行います。adbを使ってもできますが、adbはインストールと接続が煩雑なので今回は取り上げません。

条件は下記のとおりです。

  • Android端末とPCが同じWi-Fi内にいる
  • PC側にターミナル的な環境がある
  • PC側でSSHクライアントが使える

1.Androidにアプリのインストール @Android

まず、Android端末にTermuxアプリをインストールします。"Google Play"版は古いようなので下記よりダウンロードしてください。

次にキーボードアプリをインストールします。 下記のどちらかのキーボードアプリがおすすめですが、私はCodeBoardを使っています。

AndroidでTermuxを起動したらまず下記のコマンドを打って最初のセットアップを行います。 この際、先ほどインストールしたキーボードアプリ(CodeBoardとか)を使います。 デフォルトのAndroidのキーボードが表示されると思うのでスペースを長押ししてキーボードを変更してください。

# @Android

# /data/data/com.termux/files/home(~)にstorageディレクトリを作る
$ termux-setup-storage

# パッケージのアップデート
$ pkg update
$ pkg upgrade

2.Termux側にSSHの設定をする @Termux

TermuxにOpenSSHサーバをインストールしてIPを確認します。

# @Android

# OpenSSHサーバのインストール
$ pkg install openssh

# OpenSSHサーバーの起動
$ sshd

# IP確認
$ pkg install iproute2
$ ip -4 a
## inet 192.168.1.x/24 という表記の192.168.1.xの部分がIPになります

# ユーザー名確認
$ id
## uid=xxxxx(u0_axxxxx) という表記のu0_axxxxxがユーザー名になります

# パスワード設定 これでパスワードを設定します、適当なパスワードを設定してください
$ passwd

3.PC側からTermuxにログイン @PC

以降はPC側からAndroidのTermuxに入るので操作はPC側から行います。

下記のようにパスワードでログインします。

# @PC

# ユーザー名: u0_axxxxx, ip: 192.168.1.1の場合
$ ssh -p 8022 u0_axxxxx@192.168.1.1

# パスワードを聞かれるので先ほどTermux側でpasswdで設定したパスワードを入れる

なお、パスワードを使わず公開鍵認証でSSHログインしたい場合は下記のように行ってください。 パスワードを毎回使っても大丈夫と言う方は下記は飛ばして4に行ってください。

# @PC
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 2048 -f <名前>
##    公開鍵:名前.pub
##    秘密鍵:名前
##    が生成される
# ssh-copy-idで公開鍵をコピー
$ ssh-copy-id -i ~/.ssh/<名前>.pub -p 8022 u0_axxxxx@192.168.1.1

# .ssh/configに下記を記述
Host ssh2android
    HostName 192.168.1.1
    User u0_axxxxx
    Port 8022
    IdentityFile ~/.ssh/名前
    ServerAliveInterval 60


# @PC PCからTermuxにSSHでログインしてから下記を叩く
$ cat ~/名前.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

この設定をしておけば次回以降PCからは$ ssh ssh2androidでログインできます。

4.TermuxにLinuxをインストールして起動 @Termux

LinuxのインストールはAndroidにまともなターミナル環境(Ubuntu on Termux)を作った話(サイトがなくなっているようです)で紹介されているUbuntuをインストールする方法を使用します。

# @Termux from SSH on PC
# 下記コマンドはホーム(~)でやることを想定しています
# https://nombi.info/posts/computer/uot/ より一部引用
$ pkg install wget openssl-tool proot -y
$ hash -r
$ wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Ubuntu/ubuntu.sh
$ bash ubuntu.sh

上記の方法はAnLinux-ResourcesのUbuntuを使用する方法です。このレポジトリにはUbuntu以外にもAlpineやKali Linuxもあるようなのでそちらを使っても行けると思いますが、私はテストしていないので何とも言えません。

その際は上記のコードのUbuntuの部分を当該のLinuxの名前に書きかえればよいと思います。

最後に下記コマンドを叩きます。

$ ./start-ubuntu.sh

これでUbuntuが起動します。

また、Termux起動時にOpenSSHサーバーとLinux(Ubuntu)を起動しておきたい場合は下記のコードを~/.bashrcに書いておきます。

sshd
./start-ubuntu.sh

これでTermuxを起動するとOpenSSHサーバーとLinux(Ubuntu)が起動するのであとはログインするだけとなります。

以上。

番外編. proot-distroでUbuntuをインストール

prootとproot-distroを使ってubuntuがインストールできるようで、4.で紹介している方法より簡単そうです。

気になった方は下記を参照してください。

https://github.com/termux/proot-distro