スマホに termux をインストールした上で、 sshd を起動してみました。実際にはCPUやネットワークの問題で、スマホをいわゆるサーバーとして使用するのは重過ぎます。しかし、一方でシェルスクリプトをスマホの小さなキーボードで書いたりテストしたりするのも非現実的ですので、外部から潜り込める環境は必須だと思います。
作業にあたっては、
AndroidでLinuxターミナル!termuxの初期設定 - lisz-works
TermuxでSSH Serverを起動する - Qiita
などを参考にさせてもらいました。
まずスマホに termux をインストールし、ターミナルを起動します。
apt update apt upgrade
termux-setup-storage
apt install openssh
を、それぞれ実行します。この状態で sshd は起動可能ですが、安全を期すため
ssh-keygen cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh cp ~/.ssh/id_rsa ~/storage/downloads
をしておきます。ここまでの作業はスマホの小さな画面上で行わなくてはならないので大変です。なお、ssh-keygen では passphrase を入力する必要が有りますので、紙などに記録しておきます。さて、~/storage/download/id_rsa を ubuntu PC の ~/.ssh へ持ってきます。 ~/storage 以下はスマホのファイルマネージャーなどで操作することが可能ですから、メールや転送ソフトなどを利用することができます。そして、再度スマホのtermuxターミナルで
sshd
を実行しておきます。以下はクライアントである ubuntu PC で実行します。
ssh -i ~/.ssh/id_rsa -p 8022 -l ユーザー名 IPアドレス
スマホが省電力モードになっていると、アクセスできない場合があります。画面ロックを解除した状態で ssh を実行しましょう。このときtermuxは必ずしも起動させておく必要はありません。また、passphrase を聞かれたらssh-keygen で設定したものを入力します。
ここまでが成功すれば、
sftp -P 8022 IPアドレス
でファイルの転送も可能になります。