エンドユーザーは、ネイティブターミナルで cloudflared を使って認証すれば、Cloudflare One Client なしで SSH サーバーに接続できます。この方法では、サーバーとクライアントの両方に cloudflared をインストールし、Cloudflare 上にアクティブなゾーンが必要です。トラフィックはこの接続経由でプロキシされ、ユーザーは Cloudflare Access の資格情報でサーバーにログインします。
クライアント側の cloudflared は、Cloudflare One Client および Access for Infrastructure と併用できます。サーバーへの接続方法を複数用意できます。各接続方法を設定するとき、同じ Cloudflare Tunnel を再利用できます。
-
ダッシュボードのセットアップガイド に従って、Cloudflare Tunnel を作成します。
-
Cloudflare ダッシュボードで Networking > Tunnels を開き、対象のトンネルを選択します。
Tunnels を開く ↗ -
Routes タブで Add route を選択し、続いて Published application を選択します。
-
ドロップダウンからドメインを選び、サブドメインを指定します(例:
ssh.example.com)。 -
Service で SSH を選び、
localhost:22を入力します。SSH サーバーがトンネルをインストールしたマシンと別の場合は、<server IP>:22を入力します。 -
Add route を選択します。
-
(推奨)サーバーへのアクセスを管理するため、Cloudflare Access に セルフホストアプリケーション を追加します。
-
クライアントマシンに
cloudflaredをインストール します。 -
SSH 設定ファイルを一度だけ変更します。
vim ~/.ssh/config -
次の値を入力します。
ssh.example.comは作成したホスト名に置き換えます。Host ssh.example.com ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %hcloudflaredのパスは、OS とパッケージマネージャーによって異なる場合があります。たとえば macOS で Homebrew を使ってcloudflaredをインストールした場合は、brew --prefix cloudflaredを実行してパスを確認します。 -
サービスに到達するコマンドを実行して、接続をテストできます。
ssh <username>@ssh.example.comコマンドを実行すると、
cloudflaredがブラウザーウィンドウを開き、アイデンティティプロバイダーでの認証を求めます。認証後、ターミナルから接続が確立されます。