スマホにubuntu環境のセットアップ
android スマートフォン(termux)でubuntuを動かすよ。
方針ざっくり
やりたいこと
PCからsshログイン可能に
ログインしたらすぐにubuntu環境に入るように
デフォルトを非rootユーザーに
proot-distroを使って脱獄なしでubuntu環境を用意する
最初にスマホでsshの最小構成作って、PCからログイン
その後はPCからログインして好きにする
ubuntuに非root権限のユーザー作成して、sudoもできるようにします
ssh最短手順
code:.sh
pkg update
pkg upgrade
pkg install openssh
passwd
ifconfig
whoami
sshd
これでPCのターミナルから入れるようになった。
以後はPCから作業する
ただし、この時点ではubuntu環境ではないので、たとえばVS Codeは接続できない
ubuntuのセットアップ
ubuntuのインストール
ユーザーの作成
code:.sh
pkg install proot-distro
proot-distro install ubuntu
proot-distro login ubuntu
apt update
apt upgrade
useradd -m (ユーザー名)
passwd (ユーザー名)
ユーザーにsudo権限を与えます
code:.sh
apt install sudo
export EDITOR=$(which nano)
visudo
以下を追記
code:/etc/sudoers
(ユーザー名) ALL=(ALL:ALL) NOPASSWD:ALL
編集が終わったら exitして通常のtermuxに戻ります
ログイン時に自動でubuntuに入るようにしておきましょう
code:~/.bash_profile.sh
if "$OSTYPE" == "linux-android" ; then
if -z $SSH_CONNECTION ; then
sshd -D -p 8022 & # for terminal ssh
proot-distro login ubuntu -- sshd -D -p 8023 & # for vs code etc.
fi
proot-distro login --user (ユーザー名) ubuntu
fi
未解決の問題: sshdをどちらの環境でホストするか?
sshdをubuntu環境で実行した場合
sshdをUbuntuで実行すると、remoteからのssh直後の環境がubuntuになります
sshdをubuntu環境で実行することにより、VS CodeやCursorが接続できるようになります
VS Codeは、sshログイン直後の環境でVS Code サーバーのプロセス起動を試みるからです
そのかわり、そのセッションではproot-distro loginが使用されていないため、proot ubuntuのhomeディレクトリなどが正しく設定されていません
login時に通常実行されるディレクトリのバインド処理が行われていないと思われます
proot-distro loginを追加で使用してもfatalエラーになります
sshdをtermuxで実行した場合
まずtermuxからログインして次にproot-distro loginを実行すれば、一貫性のあるファイルシステム内で作業できます
しかしログイン直後の環境がubuntuではないので、VS Code等の実行はできません
仮説:じゃあ両方建てとけばいいじゃん
あとはプロセス監視用にhtopもいれておきます
code:.sh
pkg install htop
これで基本的な環境整備は完了ですね
see also
termuxの見た目整える+ 追加設定