3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ConoHaAdvent Calendar 2024

Day 14

ブラウザから ConoHa に SSH で繋ぎたい(Cloudflare Zero Trust)

Last updated at Posted at 2024-12-13

この記事は、ConoHa Advent Calendar 2024 14日目の記事です。
今回は清楚かわいい ConoHa ちゃんにブラウザから SSH 接続できる環境を作成しています。

コピー・ペーストがしたいです

ブラウザからの SSH 接続は ConoHa ちゃんであればコントロールパネルのコンソールからできます。

ただこの機能「コピー・ペーストが利用できません」

「テキスト送信」でまとめてコマンドを送ることができますが、わたしはコピー・ペーストがしたいです

ということで Cloudflare の Zero Trust が Browser SSH を提供しているようなので、作成していきます。

仕組み

Self-hosted applications ・ Cloudflare Zero Trust doc

alt

VPS にエージェントをインストールして ConoHa ちゃんに Cloudflare のネットワークに参加してもらいます。

Cloudflare 上に SSH クライアントアプリを展開して、あとはブラウザからアクセス。終わり

ネットワークは Cloudflare がいい感じにしてくれます。ポート開放もいりません

アプリには認証があり、あらかじめ設定した認証方式(GitHub や Google など)で制限します
(今回はめんどくさいので初期設定であるメールアドレスのワンタイムパス認証です)

実際の動きはつないでみるを見てください。

目次

  1. VPS をつくる
  2. Tunnel をつくる
  3. Application をつくる
  4. つないでみる

前提条件

  • Cloudflare アカウントを持っていること
  • クレジットカードを持っていること
    • 無料です
    • が、Zero Trust 使用開始時にカード番号入力が必要です(不正利用対策?)

VPS をつくる

生贄となる ConoHa ちゃんを作成します。

この後のセットアップ作業で SSH を使うので SSH のセキュリティグループ設定は必要です。

alt

Tunnel をつくる

Cloudflare <-> VPS 部分となる Tunnel を作成します。

Cloudflare のダッシュボードから「Zero Trust」を開いて

alt

「Tunnels」から新しい Tunnel を作成していきます。

alt

タイプで「Cloudflared」を選んで

alt

名前をつけます。

alt

インストール先の OS やアーキテクチャを選択。
すると、下側にエージェントインストールコマンドが生成されるので、左側のほうをコピペ
(右側は更新のとき用)

alt

作っておいた ConoHa ちゃんに SSH 接続してコマンドを丸っと貼り付け実行します。
cloudflared installed successfullyになればOKです。SSH は不要なのでセキュリティグループは塞いでOKです
(スタートアップスクリプトに仕込めば SSH も不要かも)

shell
# sudo cloudflared service install xxx
2024-12-01T00:00:00Z INF Using Systemd
2024-12-01T00:00:00Z INF Linux service for cloudflared installed successfully

設定がOKだったら、ページ下のConnectorsに追加したサーバが表示されます。

alt

ブラウザからアクセスする際の FQDN を決めます。
Path指定もできますが Browser SSH は非対応です。空欄で。

その下の Service は VPS の接続先となる SSH を指定します。
この設定で Cloudflare から来た通信が SSH のポートに転送されます。

  • Type:SSH
  • URL:localhost:22

alt

Application をつくる

ブラウザ <-> Cloudflare 部分となる Application を作成します。

「Applications」から新しい Application を作成していきます。

alt

「Self-hosted」を選んで

alt

Application nameに名前を入れます。
この値は FQDN にアクセスすると誰でも確認できるの注意です。
(そういえば「NG ワード:おっさん」は消えたんですか?)

その下のApplication Domainには Tunnel で指定した FQDN と同じ値を入れます。

alt

接続を許可する条件を指定します。
Policy nameに名前を入れます。

いろいろ設定項目はありますが、Configure rulesだけ設定すればOKです。

条件として特定メールアドレスやアクセス元 IP と選択肢は盛りだくさん。
今回は特定メールアドレスを指定します。

このメールアドレス条件がアプリのログインとマッチして、一致した場合だけ SSH できます

alt

追加設定を設定します。
今回は「Additional settings」の「Browser rendering」からSSHを選ぶ点だけ変更
これで SSH クライアントがブラウザで動きます。

alt

つないでみる

ブラウザから指定した FQDN にアクセスします。

許可条件で指定したメールアドレスを入れて「Send me a Code」

alt

noreply@notify.cloudflare.comから届いたワンタイムパス(数字)を入れて「Sign in」

alt

ここからは SSH 接続の時間です。
VPS のユーザー名(root)を入れ

alt

ssh ユーザーのパスワードを入れます。
「Private Key」を選べば鍵認証も可

alt

見慣れた黒い画面が降臨

SSH サーバーから見ると VPS で動いているエージェントからのアクセス扱い
アクセス元は常に127.0.0.1です

alt

あとがき

ConoHa ちゃんの Advent Calendar は2019年から毎年参加してきましたが、去年は参加できていません

某パブリックで従量課金なクラウドサービスに浮気した結果、ミスって 100万円の請求書襲来だったからです

今年はそんなこともなく、やすらぎの年末年始を迎えられそうです。たぶん

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?