跳转到内容
搜索文档

SSH

最后更新 查看 MarkdownAgent 设置

只要匹配的公钥列在 authorized_keys 中,任何对容器具有写访问权限的人都可以使用 Wrangler 通过 SSH 连接到该容器。

SSH 不会在容器上暴露公开可访问的端口。唯一的连接方式是通过 Wrangler 使用 wrangler containers ssh,它将针对你的 Cloudflare 账户进行身份验证。

配置 SSH

可以在容器的配置中通过 sshauthorized_keys 属性配置 SSH。仅支持 ssh-ed25519 密钥类型。

ssh.enabled 属性仅控制你是否可以通过 Wrangler 通过 SSH 连接到容器。其默认值为 true。将其设置为 false 可以完全禁用 SSH 访问。

使用 Wrangler 连接

要使用 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>

用作 SSH 代理

你可以将 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,此标志默认开启。

这篇文档对您有帮助吗?