日記

日本語の勉強のためのブログ

termuxにssh接続したい

ネットワークについて実践的に復習しようと思い立ったためやってみた.

1. 環境

  • 接続元
    • Windows 10 Home
    • WSL2(Ubuntu20.04.4 LTS)
  • 接続先

2. 概略

ssh接続するには,まず接続先でsshdというコマンドを使いssh接続を受け付ける.
その後,接続元でsshコマンドを用いて接続先にssh接続する.

参考: 【入門 SSH プロトコル】コマンドでの接続方法やconfigの設定 | ほげほげテクノロジー

3. 実際にやってみた

3.1 termuxのローカルIPアドレスを知る

接続元のwindowsと接続先のandroidが同一LAN内にいたので,windowsnetdiscoverを実行すればいいと思ったがWSLではエラーが出て使えなかった(ソケットが何とか言われた).

そのためtermux自身を用いて調べる.
ipコマンドは入っていなかったのでifconfigで調べると,192.168.0.3がtermuxのローカルIPアドレスであるとわかった.

3.2 termuxでsshdを実行

apt install opensshsshdがインストールされる.インストール完了と同時に公開鍵・秘密鍵も自動作成された.

そしたら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サーバにアクセスし,作成した文書を閲覧できる.

図1. Chromeで該当ページにアクセスした際のスクショ

なお,先ほど作成したhtml文書名がindex.html以外の場合は,http://<termuxのIPアドレス>:8000/<html文書名>にアクセスすれば閲覧可能.

5. その他注意

ssh接続した後いろいろ遊んでいると,勝手にssh接続が切れ,再接続もできないことがあったが,スマホを見るとスリープ状態になっていたので,これが原因であった.スリープにならないように設定するなどの対策が必要である.