トホホな疑問(46) WindowsPCからAndroidスマホにSSH接続

Joseph Halfmoon

前々回はWindowsPCからWindowsPCにSSH接続しましたが、今回はWindowsPCからAndroidのスマホにSSH接続してみました。Androidスマホ上で、Clangでコンパイルも出来れば、Python3も走ると。キーボードと広い画面でこれが出来るので便利。と思ったら、ちょいと面倒な要対処有。トホホ。。。

このところスマホにインストールしてあったけれども「使っていなかった」モノドモを使えるかどうか調べてました。別記事にてMaxima on Androidは既に活用開始。もともとLinuxが走っているのだからUIさえなんとかなればスマホでも結構いけます。ストレージの肥やしにしておいたのがモッタイない。

今回「復活」してみたのはTermuxというターミナルエミュレータです。Androidスマホ上で、ルートを取らないユーザのままでLinux上でbashを走らせて、CUIで操作できるもの。pkg ツールを使ってLinux上で走る各種ツールをインストールすることが可能です。ほぼほぼAndroidスマホが持ち運びのLinuxマシンになる優れもの。ホームページは以下に。

Termux

インストールしたけれど「使ってなかった」理由は、やはりUIでした。Linux使う上では、記号とか、CTRLナンチャラとか、ESCキー押してとかキーボード操作が必要ですが、その辺の操作がとても面倒に思えたから。しかし、Termuxの中の人はその辺お見通しだったみたいです。以下のページを先に読んでおけばよかったです。

Touch Keyboard

音量キーを使って、タッチパネルで操作しずらいキー入力ができるようになっている他、タッチパネル上でも各種キーをカスタマイズできるようになってました。手元のTermux走らせているスマホ画面のキャプチャが以下に。

Screenshot_20220329-170849

スマホ上でも、十分入力可能であることをようやく認識。使えます。

スマホ外部からのSSH接続

スマホ上のタッチパネルでも使えますが、WindowsPCなどからSSH接続できるとなおよし、です。特にキーボード世代の年寄りには楽。100倍楽。

前々回やった手順ほぼ同等でWidows上のSSHクライアントを使って接続OKでした。手順概略をまとめると以下のようです

  1. ssh-keygenを使って公開鍵、秘密鍵のファイルを生成
  2. 生成した公開鍵ファイルをAndroidスマホ側に登録
  3. Androidスマホ(Termux)側でsshd起動(sshdと打つだけ)
  4. Windows上のssh クライアントから接続

sshクライアントからの接続は以下のようにしてみました。ポートが22でなく8022なのはチョイとTips。

ssh スマホのIPアドレス -p 8022 -l ユーザ名 -i 秘密鍵のファイル名

なお、Androidスマホ上のパスは普通のLinuxとはちょっと違います。

  • 内蔵Flashのみ読み書き可能(外部sdcardの書き込み制限あり)
  • Linuxのホームディレクトリは /data/data/com.termux/files/home/
  • スマホ上のdownloadsディレクトリは以下に見えるようにできる

/data/data/com.termux/files/home/storage/downloads/

PC上のSSHクライアントでAndroidスマホに接続して home ディレクトリを眺めているところが以下に。

sshlogin

どうもTermuxの中の人は、Clang派のようで、”gcc” もClangに向けてありました。簡単なプログラムをコンパイルしてみましたが、問題なく動作しました。またpython3も動作OKです。バージョンは以下です。

version

初期状態では .bashrcには2行しかなかったですが、手で打ち込むのがメンドイ部分をとりあえず以下のように追加してみました。なお、エディタには nano が使えます。vim も追加インストール可能みたい。

bashrc

なお、肝心のタッチキーボード関係は、

home/.termux/termux.properties

の中で定義されてます。初期状態では全てコメントアウトされていたので、適当に編集し、termux-reload-settings コマンドを実行するとタッチキーボードをカスタマイズすることが出来ました。

prop

再インストール必要、トホホ。。。

ここまで使ってきて、結構普通に使えるじゃん、sudo ないけれども Raspberry Pi と同等じゃな、などと思っていたらとてもトホホな件が発覚。

  1. Termuxは、そうとう昔Google Playからインストールした
  2. しかし、Termuxの人々は Google Playからのアップデートを止めていた
  3. Termuxの最新版は別経路から入手する必要がある。
  4. その際、Google Play版と混在しないように、一度Google Play版をアンインストールする必要がある

折角使えると思ったのに、Termuxアップデートするためには/homeとか、/usrとかをバックアップして、アンインストールして、再インストールしないとならないみたい。。。トホホというか面倒すぎる。またそのうちね。とりあえずSSHで使えるから良いか(良いわけないが。)

※Linux上のpkgツールのupdate, upgradeは普通に可能でした。

トホホな疑問(44) WindowsPCからWindowsPCにSSH接続 へ戻る

トホホな疑問(45) I2CでAQM1602通信失敗、Pull-up抵抗強すぎた へ戻る

トホホな疑問(47) Androidスマホの中でVNC接続、TermuxのGUI へ進む