只要匹配的公钥列在 authorized_keys 中,任何对容器具有写访问权限的人都可以使用 Wrangler 通过 SSH 连接到该容器。
SSH 不会在容器上暴露公开可访问的端口。唯一的连接方式是通过 Wrangler 使用 wrangler containers ssh,它将针对你的 Cloudflare 账户进行身份验证。
可以在容器的配置中通过 ssh 和 authorized_keys 属性配置 SSH。仅支持 ssh-ed25519 密钥类型。
ssh.enabled 属性仅控制你是否可以通过 Wrangler 通过 SSH 连接到容器。其默认值为 true。将其设置为 false 可以完全禁用 SSH 访问。
要使用 Wrangler 通过 SSH 连接到容器,请在容器配置中的 authorized_keys 中添加一个 ssh-ed25519 公钥。以下示例展示了一个基础配置:
{
"containers": [
{
// other options here...
"authorized_keys": [
{
"name": "<NAME>",
"public_key": "<YOUR_PUBLIC_KEY_HERE>"
}
]
}
]
}[[containers]]
[[containers.authorized_keys]]
name = "<NAME>"
public_key = "<YOUR_PUBLIC_KEY_HERE>"有关配置 SSH 的更多信息,请参考 SSH 配置。
通过运行 wrangler containers instances 或在 Cloudflare 仪表板 ↗ 中找到你的容器实例 ID。
你想要通过 SSH 连接的实例必须正在运行。
SSH 不会启动已停止的容器,且仅有一个活跃的 SSH 连接并不会保持容器活动。
在配置了 SSH 且容器正在运行后,通过以下命令开启 SSH 连接:
wrangler containers ssh <INSTANCE_ID>你可以将 wrangler containers ssh 用作 OpenSSH ProxyCommand。这允许你的本地 SSH 客户端通过 Wrangler 连接。
ssh -o ProxyCommand="wrangler containers ssh %h" cloudchamber@<INSTANCE_ID>以这种方式使用时,Wrangler 会将标准输入和输出管道传输到正在运行的容器中的 SSH 服务器。你还可以传递 --stdio 来强制使用此模式。
如果没有 containers_pid_namespace 兼容性标志,当你通过 SSH 连接到你的容器时,VM 内的所有进程都是可见的。对于兼容性日期为 2026-04-01 或更晚的 Workers,此标志默认开启。