ネットワークについて実践的に復習しようと思い立ったためやってみた.
1. 環境
2. 概略
ssh接続するには,まず接続先でsshd
というコマンドを使いssh接続を受け付ける.
その後,接続元でssh
コマンドを用いて接続先にssh接続する.
参考: 【入門 SSH プロトコル】コマンドでの接続方法やconfigの設定 | ほげほげテクノロジー
3. 実際にやってみた
3.1 termuxのローカルIPアドレスを知る
接続元のwindowsと接続先のandroidが同一LAN内にいたので,windowsでnetdiscover
を実行すればいいと思ったがWSLではエラーが出て使えなかった(ソケットが何とか言われた).
そのためtermux自身を用いて調べる.
ip
コマンドは入っていなかったのでifconfig
で調べると,192.168.0.3
がtermuxのローカルIPアドレスであるとわかった.
3.2 termuxでsshd
を実行
apt install openssh
でsshd
がインストールされる.インストール完了と同時に公開鍵・秘密鍵も自動作成された.
そしたらsshd
を実行.
3.3 termuxのパスワード設定
必要らしい.
パスワードはpasswd
を実行すれば設定できる.
参考: AndroidにTermuxを入れてSSHで入ってLinux環境を作る【まとめ版】 | 楽しい活字中毒
termux側の設定はここまで.
3.4 windows(接続元)からssh
でtermuxにssh接続
ssh -p 8022 <termuxのipアドレス>
で接続できる.パスワードを聞かれるので3.3節で設定したパスワードを入力する.
なお,最初ssh <termuxのip>
と実行したが接続できなかった.
実はtermuxは1024以下のポートが使えないらしく,sshのポートが(デフォルトでは)8022に設定されているらしい.
参考: Termux on AndroidのSSHサーバに接続する方法 | LFI
4. おまけ - termuxにhttpサーバを立てる
termuxにhttpサーバを立て,PCから閲覧してみる.
4.1 適当なhtml文書の準備
termuxのホームディレクトリ直下に適当なディレクトリを作成し,cd
でそこに移動する.
そしてそのディレクトリ内に適当なhtml文書を入れておく.
今回はテストなので3秒で以下の文書(index.html
)を作成した.
<html> <head> <title>Test</title> </head> <body> It Works! </body> </html>
4.2 httpサーバを立てる
python3 -m http.server 8000
でhttpサーバを立てる.
ここで,このコマンドを実行する場所は,先ほど作成したhtml文書があるディレクトリでないといけないことに注意する.
4.3 ブラウザで閲覧
ブラウザのアドレスバーにhttp://<termuxのIPアドレス>:8000/
と入れることでhttpサーバにアクセスし,作成した文書を閲覧できる.
なお,先ほど作成したhtml文書名がindex.html
以外の場合は,http://<termuxのIPアドレス>:8000/<html文書名>
にアクセスすれば閲覧可能.
5. その他注意
ssh接続した後いろいろ遊んでいると,勝手にssh接続が切れ,再接続もできないことがあったが,スマホを見るとスリープ状態になっていたので,これが原因であった.スリープにならないように設定するなどの対策が必要である.