Androidはかなり簡素化されたLinux(Ubuntu)です。
TermuxはAndroidにCUIを追加します。
pkg installやgcc、make install使えるため、様々なソフトウェを導入することができます。
しかしながら操作性が悪いため、外部からSSH接続できる様にすると作業が捗ります。
Termuxをインストール
Google Playからインストールできます
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秘密鍵でローカルPCに、Z2.pub はSH公開鍵です。
Z2.pubを接続先のSSHサーバー(この場合TermuxをインストールしたAndroid)に転送して登録します。
Android端末にファイルを送り込む必要があるときは Google DriveやGmailに添付して下書きで保存するか、私がよく使っている方法としては Androd上でFTPサーバを立ち上げて転送しています。
Android用のFTP Server
上記の 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用にワンタッチで切り替えることができ、筆者も愛用中です。
コメント
[…] Androidで使えるターミナルTermuxをインストールし外部からSSH接続できるようにする […]
ありがとうございます。
.sshがなければディレクトリを作成
(mkdir: cannot create directory ‘.ssh’: File exists が表示されても問題ない)
ここで詰んでたので大変助かりました!!ありがとうございました。