スマホをLINUXサーバーにする

スマホtermux をインストールした上で、 sshd を起動してみました。実際にはCPUやネットワークの問題で、スマホをいわゆるサーバーとして使用するのは重過ぎます。しかし、一方でシェルスクリプトスマホの小さなキーボードで書いたりテストしたりするのも非現実的ですので、外部から潜り込める環境は必須だと思います。

作業にあたっては、

AndroidでLinuxターミナル!termuxの初期設定 - lisz-works

TermuxでSSH Serverを起動する - Qiita

sshで公開鍵認証を使ってアクセスする - 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_rsaubuntu PC の ~/.ssh へ持ってきます。 ~/storage 以下はスマホのファイルマネージャーなどで操作することが可能ですから、メールや転送ソフトなどを利用することができます。そして、再度スマホのtermuxターミナルで

sshd

を実行しておきます。以下はクライアントである ubuntu PC で実行します。

ssh -i ~/.ssh/id_rsa -p 8022 -l ユーザー名  IPアドレス 

 

f:id:S_E_Hyphen:20191006164246p:plain

スマホが省電力モードになっていると、アクセスできない場合があります。画面ロックを解除した状態で ssh を実行しましょう。このときtermuxは必ずしも起動させておく必要はありません。また、passphrase を聞かれたらssh-keygen で設定したものを入力します。

ここまでが成功すれば、

sftp -P 8022  IPアドレス 

でファイルの転送も可能になります。