ChatGPT Desktop 转发 SSH agent 到远程机器

ChatGPT Desktop forwards your SSH agent to remote machines

ChatGPT Desktop 的一项新功能引发了安全讨论:它会将本地的 SSH agent 转发到远程机器。这意味着运行在远程环境中的代理可以直接使用你本地的 SSH 凭证进行身份验证,甚至能自动向你的 GitHub 私有仓库推送代码。虽然这提升了开发效率,但也带来了潜在的安全风险。有开发者建议,在 macOS 上利用安全飞地(secure enclave)存储 SSH 密钥,并强制每次会话都需要指纹验证,这样既能防止代理擅自发起连接,又能确保用户对每一次 SSH 连接都保持知情和控制。

运行在远程机器上的代理可以使用你本地的 SSH 凭证进行身份验证,例如向你的 GitHub 私有仓库推送代码。
  1. otterley

    如果这让你感到困扰,可以在 ssh 配置文件中加以防范:

    Host trusted-server

    HostName server.example.com

    ForwardAgent yes

    Host another-trusted-server

    HostName another.example.com

    ForwardAgent yes

    Host *

    ForwardAgent no

  2. recsv-heredoc

    产品决策为了“消除摩擦”而走向这种方向,真是屡见不鲜。

    在安全领域,摩擦是好事。你希望做事时有一定的仪式感。人们为了便利而放弃控制权,这几乎是不可避免的。

    看看 Artifacts 就是个例子。

  3. Lukas_Skywalker

    Bitwarden 桌面应用内置了 SSH agent [1],允许你将 SSH 密钥存储在 Bitwarden 中。我已将应用设置为每次请求密钥时都要求我确认。

    [1] https://bitwarden.com/help/ssh-agent/

  4. littlecranky67

    我建议在 macOS 上使用安全飞地(secure enclave)中的 ssh 密钥,这样每次新会话都需要指纹验证 [0]。这样一来,agent 就无法主动发起任何操作,而且你总能意识到有新的 ssh 连接正在建立。

    [0]: https://gist.github.com/arianvp/5f59f1783e3eaf1a2d4cd8e952bb...

  5. yfontana

    我不明白链接中的拉取请求(pull request)到底想证明什么,毕竟它已经被关闭且未被合并。

同日更多故事

2026-11-09