最终用户可以在没有 Cloudflare One Client 的情况下,通过在原生终端中通过 cloudflared 进行身份验证来连接到 SSH 服务器。此方法需要在服务器和客户端计算机上都安装 cloudflared,并在 Cloudflare 上拥有一个活动区域。流量在此连接上进行代理,并且用户使用其 Cloudflare Access 凭证登录到服务器。
客户端 cloudflared 可以与 Cloudflare One Client 和 Access for Infrastructure 结合使用,从而有多种方法连接到服务器。在配置每个连接方法时,您可以重复使用相同的 Cloudflare Tunnel。
-
按照我们的仪表板设置指南创建一个 Cloudflare Tunnel。
-
在 Cloudflare 仪表板中,转到 Networking(网络) > Tunnels(隧道) 并选择您的 Tunnel。
Go to Tunnels ↗ -
在 Routes(路由) 选项卡上,选择 Add route(添加路由),然后选择 Published application(已发布的应用程序)。
-
从下拉菜单中选择一个域名并指定子域名(例如,
ssh.example.com)。 -
对于 Service,选择 SSH 并输入
localhost:22。如果 SSH 服务器与您安装 Tunnel 的机器不是同一台,请输入<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的路径可能会根据您的操作系统和包管理器而有所不同。例如,如果您是在 macOS 上使用 Homebrew 安装的cloudflared,请通过运行brew --prefix cloudflared来检查其路径。 -
您现在可以通过运行访问服务的命令来测试连接:
ssh <username>@ssh.example.com运行该命令时,
cloudflared将启动一个浏览器窗口,提示您在从终端建立连接之前,先在身份提供商处进行身份验证。