TermuxにWi-Fi経由でSSH接続する
この記事での設定方法は少し冗長です。AndroidにTermuxを入れてSSHで入ってLinux環境を作る【まとめ版】の1~3の方が簡単です。
前回はTermuxにUSB経由でSSH接続する方法でしたが、今回はTermuxにWi-Fi経由で入る方法です。
1.PC: 鍵を生成してAndroidへ送る
まずAndroidとPCを用意してUSBでつなげます。
Wi-Fi接続の場合でも最初はUSBでPCとAndroidを繋がなきゃダメです。
次に、秘密鍵と公開鍵を生成し、Androidに送ります。
# 鍵の生成
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 2048 -f <名前>
公開鍵:名前.pub
秘密鍵:名前
が生成される
# 端末を認識
$ adb devices
# 端末にadb接続していいかアラートが表示されるのでOKする
# 公開鍵をAndroidへ 表示されたIDにpush
$ adb -s <id> push <公開鍵> /sdcard/Download/<公開鍵>
ここまではUSBで繋ぐのと一緒です。
2.Android: Termuxで鍵を設定する
AndroidでTermuxを起動して、そこで公開鍵を設定します。
# storageを有効化
## これをやらないとpushした鍵が見つからない
$ termux-setup-storage
# 公開鍵がpushされているか確認
$ ls -l ~/storage/downloads/<公開鍵>
# 公開鍵をauthorized_keysに追加
$ cat ~/storage/downloads/<公開鍵> >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
# ssh起動
$ sshd
# 何も出力されないがそれでいい
ここもUSBで繋ぐのと一緒です。
3.Android: ipの確認
AndroidのTermuxで下記のコマンドをたたく。
# ipコマンドが無い場合はiproute2をインストールする
$ pkgi install iproute2
# ip確認
$ ip -4 a
## IPっぽいものが表示されます192.168.x.xxx みたいな
もしくはAndroid端末の[設定] => [システム] => [端末情報] => [端末の状態] のIPアドレスの部分を確認。
[設定]以降は端末によって結構違うので根気よく探してください。
4.PC: PCからSSH接続
PCからWi-Fi経由でSSH接続します。
# 接続
$ ssh -p 8022 -i ~/.ssh/<秘密鍵> <ip>
## 例 秘密鍵が ~/.ssh/aiueo 、 AndroidのIPが 192.168.1.1 の場合
$ ssh -p 8022 -i ~/.ssh/aiueo 192.168.1.1
5.接続できない場合
PCとAndroidをUSBで接続します。
PCから下記のコマンドを叩く。
$ adb devices
# 端末にadb接続していいかアラートが表示されるのでOKする
$ adb tcpip 5555
$ adb connect 192.168.1.1
#特にエラーが出なかったらUSBは抜いて大丈夫
コマンドを打ち終わったら再度 4. を試してください。 なお、USBは外して大丈夫です。
もちろん~/.ssh/config
に設定を書いておいて接続することも可能です。
USB接続に比べるとWi-Fiは結構遅いですが、無線なのでまあそういうもんです。
速度が気になるのであればUSB接続の方が速いので、そっちを使いましょう。