Androidで使えるターミナルTermuxをインストールし外部からSSH接続できるようにする

Androidはかなり簡素化されたLinux(Ubuntu)です。
TermuxはAndroidにCUIを追加します。
pkg installやgcc、make install使えるため、様々なソフトウェを導入することができます。
しかしながら操作性が悪いため、外部からSSH接続できる様にすると作業が捗ります。

Termux起動直後の画面

Termuxをインストール

Google Playからインストールできます

Termux - Apps on Google Play
Termux combines powerful terminal emulation with an extensive Linux package collection. • Enjoy the bash and zsh shells. • Manage files with nnn and edit them ...

TermuxにSSH接続できるように設定する

Termuxインストール直後はまだ外部からSSH接続できません。
接続元のPCとAndroid端末双方で作業が必要です。
AndroidのTermux上で必要なパッケージを入れていきます。

接続元での事前準備

SSH公開鍵、秘密鍵の鍵ペアが必要です。
OpenSSHを使った鍵ペアの作成は以下のコマンドで作成可能です。
Z2は任意のファイル名で、私はXperia Z2 Tabletを使っているため Z2 という名称にしました。

ssh-keygen -t rsa -b 2048 -f Z2

Z2がSSH秘密鍵、Z2.pub はSH公開鍵で、公開鍵を接続先のSSHサーバーに転送して登録します。
Android端末にファイルを送り込む必要があるときは Google DriveやGmailに添付して下書きで保存するか、私がよく使っている方法としては Androd上でFTPサーバを立ち上げて転送しています。

Android用のFTPサーバ(AndFTP)

上記の Z2.pub をAndroidの /sdcard ディレクトリに転送しておきます。

AndroidのTermux側で作業

Android側で以下のコマンドを1行づつ実行します。
sudoは不要です。

外部ストレージへアクセスできるように設定する。 ※初回Termux起動時のみ

termux-setup-storage

aptパッケージマネージャのアップデート

apt-get -y update && apt-get -y upgrade

OpenSSHをインストール

apt install openssh -y

.sshがなければディレクトリを作成
(mkdir: cannot create directory ‘.ssh’: File exists が表示されても問題ない)

mkdir ~/.ssh

接続元の端末から送ったSSH公開鍵を登録する。(/sdcard に Z2.pub を転送したと仮定)

cat /sdcard/Z2.pub >> ~/.ssh/authorized_keys

Android側のIPアドレスが必要なため以下のコマンドで確認しておきます

ip -4 a

Teratermを使ってTermuxへSSH接続

先程確認したIPアドレスへTeratermからSSH接続してみます。
ポート番号は8022ですので注意。

秘密鍵を指定します。
ユーザー名とパスフレーズは空白でも、なにか入力(無視されます)してもOK

Teratermを使ってAndroid上のTermuxへSSH接続できました。

AndroidでCUIターミナルを使いたいとき、Bluetooth接続のハードウェアキーボードがあると作業がはかどります。
iOSとAndroid用にワンタッチで切り替えることができ、筆者も愛用中です。

コメント

  1. […] Androidで使えるターミナルTermuxをインストールし外部からSSH接続できるようにする […]

  2. えいさん より:

    ありがとうございます。
    .sshがなければディレクトリを作成
    (mkdir: cannot create directory ‘.ssh’: File exists が表示されても問題ない)

    ここで詰んでたので大変助かりました!!ありがとうございました。

タイトルとURLをコピーしました