你的 Agent 在云端需要认证?Device Flow 协议拆解
· 阅读需 10 分钟
前阵子在一台 TencentOS 服务器上配 GitHub CLI——AI Agent 跑在上面,需要通过手机 IM 跟它对话。遇到了一个经典场景:
- 没有浏览器(远程服务器,没图形界面)
- 没有 sudo 权限(只能装到自己
~/bin) - 需要
gh能正常认证、创建 PR - 关键:不能把 Token 直接发给 Agent——不管走什么通道,Token 一旦进了 Agent 的上下文就会被记录、可能被写入日志、甚至出现在训练数据里
传统 OAuth 流程要在浏览器里跳转。这里行不通。
第一个直觉是手动生成 Personal Access Token,gh auth login --with-token 灌进去。能用,但很麻烦——你要打开 GitHub 设置页、找到 Token 生成页面、选权限、复制、回到终端粘贴。隔几个月 Token 过期了,再来一遍。
我翻了翻 GitHub CLI 文档,发现它默认走的是一条不同的路:Device Flow(设备授权流)。执行 gh auth login --web,终端打印一串验证码,你去另外一台设备上打开 github.com/login/device 输入它,这边自动完成认证。
整个流程不到两分钟。当时觉得——这东西挺聪明的,值得拆开看看里面怎么跑的。
