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 私有仓库推送代码。
HN 评论区
66- otterley
如果这让你感到困扰,可以在 ssh 配置文件中加以防范:
Host trusted-server
HostName server.example.com
ForwardAgent yes
Host another-trusted-server
HostName another.example.com
ForwardAgent yes
Host *
ForwardAgent no
- recsv-heredoc
产品决策为了“消除摩擦”而走向这种方向,真是屡见不鲜。
在安全领域,摩擦是好事。你希望做事时有一定的仪式感。人们为了便利而放弃控制权,这几乎是不可避免的。
看看 Artifacts 就是个例子。
- Lukas_Skywalker
Bitwarden 桌面应用内置了 SSH agent [1],允许你将 SSH 密钥存储在 Bitwarden 中。我已将应用设置为每次请求密钥时都要求我确认。
- littlecranky67
我建议在 macOS 上使用安全飞地(secure enclave)中的 ssh 密钥,这样每次新会话都需要指纹验证 [0]。这样一来,agent 就无法主动发起任何操作,而且你总能意识到有新的 ssh 连接正在建立。
[0]: https://gist.github.com/arianvp/5f59f1783e3eaf1a2d4cd8e952bb...
- yfontana
我不明白链接中的拉取请求(pull request)到底想证明什么,毕竟它已经被关闭且未被合并。