有馬総一郎のブログ

(彼氏の事情)

2024年11月24日 07:22:21 JST - 3 minute read - Linux

外からスマホ(Android)でWARP Clientを使ってCloudflare Tunnnelで公開している自宅サーバーにターミナル(ssh)でアクセスする

外から、Cloudflare Tunnnelで公開している自宅サーバーに、スマホを使ってsshでアクセスする方法が分からなかったのでメモしておく。ちょっとできるようになってから時間が空いてしまって思い出しながら書いてるのと、あれこれ試行錯誤しながらやったので、不要だったり間違っていることもあると思うがご容赦願いたい。

Cloudflare One

Cloudflare Tunnelで自宅サーバーを公開するやりかたは CloudFlare Tunnelで自宅サーバーを公開するに書いてあるので、それ以降のやりかたとなる。

基本、 Cloudflare Zero TrustにAndroidを接続するまで(最短経路) - @uyorumの雑記帳と同様。

Get started | Cloudflare Zero Trust docsに沿って説明していく。自宅サーバーは192.168.0.0/24範囲にあるものとする。

  1. Settings > Authentication.

    Cloudflare Zero Trus
    1. Login methods からログイン方法を Add new 追加する。

    2. One-time PIN をクリックする。

      Cloudflare Zero Trus
  2. Setting -> WARP Client.

    1. Device enrollment permissions 項目の Manage をクリックする。
    Cloudflare Zero Trus
    1. Rulee から Add a rule をクリックしてポリシールールを追加する。
    Rule name Rule action Selector Value
    任意(WARP login) Allow Emails sample@sample.com
    Cloudflare Zero Trus
    1. Device settings に戻って既にある(?) Default縦三点リーダーをクリックして configure をクリックして編集画面を開く。( Careate profile した場合でもデフォルト設定値のままでOK)

      Cloudflare Zero Trus
    2. 編集画面から Slpit TunnelsManage をクリックして除外するIPを削除する。(デフォルトには簡単に戻せる)

      Cloudflare Zero Trus
      Cloudflare Zero Trus
      Cloudflare Zero Trus

    Type Value Desciption
    IP Address 192.168.0.0 -

    Delete 削除する。

    これをやらないと接続できない。本当は削除するだけでなく、自宅サーバーのIPアドレスだけ除外しないように、細かく追加する方が安全なんだろうけど、面倒すぎるのでやってない。

  3. Settings > Resources.1

    1. Certificates 項目の Manage をクリックする。

      Cloudflare Zero Trus
    2. Certificate Cloudflare default certificateActivate して有効化する。

      Cloudflare Zero Trus
  4. Networks > Tunnels

    1. 作成したTunnelsの縦三点リーダーをクリックして configure をクリックして編集画面を開く。

      Cloudflare Zero Trus
    2. Private Network タブをクリックしてPrivate Network一覧画面を開く。

      Cloudflare Zero Trus
    3. Add a private network をクリックしてプライベートネットワークを追加する。これが鬼門?だった…手順書になかった…仕組みが分かっていれば、すぐに分かるのだろうが…

    CIDR Description
    192.168.0.0/24 2 (任意)
    Cloudflare Zero Trus
  5. WARPクライアントをインストールする。Androidだと Cloudflare One Agent - Google Play のアプリというアプリになる。以下、略でもいいのだが、一応メモしておく。

    1. 同意画面まで完了させて、 Cloudflare Zero Trustにログイン のダイアログを表示する。

      Cloudflare One
      Cloudflare One

    2. 組織名 …なんだそれ知らんぞ、忘れたという方は(私)、

      Cloudflare One
      1. Cloudflare Zero Trust ダッシュボードにログイン

      2. Setting > Custom Pages

      3. チーム名.cloudlflareaccess.comとあるので、そのチーム名だけを入力する

        Cloudflare Zero Trus
    3. WARP ログイン画面が表示されるのでメールアドレスを入力する

      Cloudflare One
    4. メールに届いたログインコードを入力する

      Cloudflare One
    5. Congratulationの画面が出たら成功

    Cloudflare One
  6. Androidターミナルアプリをインストール(例: Termius)

  7. WARP(Cloudflare One)を起動して、接続済みにする

    Cloudflare One
  8. ssh接続情報を入力・編集して繋ぐ

    Termius
  9. OK!

    Cloudflare One
    Cloudflare Tunnnelで公開している自宅サーバーにTermiusで接続

  1. ルート証明書をアクティブ化するの手順は 2024年10 月17 日以降に作成されたゼロトラストアカウントの場合は不要っぽい。 ↩︎

  2. 実際の値は自宅サーバーのローカルネットワークIPアドレスによる ↩︎