色んなところに書いてあるので、メモ程度に
大まかな手順
Cloudflare Zero Trust側
- Cloudflareでドメインを取得、もしくは既存ドメインをCloudflareに移管
- Cloudflare Zero Trustのアカウントを作成
- Zero Trust/ネットワーク/トンネル からトンネルを作成
- 公開されたアプリケーションにSSHを追加
- ホスト: 任意の名前.mydomain.com
- サービス: SSH://localhost:22
- 注意点として、foo.bar.mydomain.com のような 2階層以上のサブドメインは指定できない
* 代わりに foo-bar.mydomain.com のようにハイフンで区切る
- 公開されたアプリケーションにSSHを追加
- 必要に応じてアクセスルールを設定
- 気になるならやっとく。今回は特に設定しなかった
サーバー側
- cloudflaredをインストール
- Windowsの場合は
winget install --id Cloudflare.Cloudflared
- Windowsの場合は
- ログイン
cloudflared loginを実行
- トンネルのところに書いてあるコマンド
cloudflared service install ...を実行- 管理者権限で実行すること
- 再起動する
クライアント側
- cloudflaredをインストール & ログイン
cloudflared tunnel listでトンネルIDを確認cloudflared access ssh-config <トンネルID>を実行して~/.ssh/configに追記する内容を確認- ここは表示だけで、自動で追記はされない
~/.ssh/configに追記ssh <ホスト名>で接続できる
参考までに、~/.ssh/config の例
Host sample
HostName sample.mydomain.com
ProxyCommand C:\Program Files (x86)\cloudflared\cloudflared.exe access ssh --hostname %h
User <ユーザー名>