AndroidにTermuxを入れてSSHで入ってLinux環境を作る【まとめ版】
このブログでTermuxを使ってAndroidにLinux環境を作る話を何個か書きました。
- Termuxを使ってAndroidでLinuxエミュレータ
- TermuxにWi-Fi経由でSSH接続する
- TermuxにUSB経由でSSH接続する
- TermuxならLinuxマシンがスゲー安く作れる
- Termux上に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.で紹介している方法より簡単そうです。
気になった方は下記を参照してください。