AI 编程不做“甩手掌柜”:从一次测试代码引出问题沟通,探寻高效的协作方式



最近在完善自研 CLI 工具的 /server add 模块,把原本单一路径的 “快乐流程”,扩展成了覆盖密码登录、密钥登录、跳板机、密钥托管、公钥自动注入等真实场景的 SSH 连通性冒烟测试。整个开发过程我全程借助 AI 辅助,从问题定位、逻辑梳理、方案取舍到代码优化,AI 全程参与。
很多人对 AI 编程有个误解:把需求丢给 AI,坐等代码复制粘贴运行。但真正落地到生产级逻辑时,我越发清晰地感受到:AI 是顶级效率放大器,但绝不是开发者的替代品。
这篇文章就以我和 AI 对话的真实案例,精简提炼核心逻辑,告诉你:为什么用 AI 编程,反而更需要扎实的基础知识。
一、背景:我在做什么
正在开发CLI程序里有个内置命令:
/server add
作用:添加一台远程服务器,做 SSH 连通性验证,并把关键信息(认证方式、密钥、Host Key 指纹)持久化存储,后续用于批量运维、信息采集、自动防御等。
为了覆盖真实场景,我扩展了以下冒烟路径:
-
密码认证 + 临时密码录入
-
密码认证 + 复用托管密钥
-
用户拒绝 Host Key 时的取消流程
-
密钥认证 + 引导式公钥注入
-
密钥认证 + 复用托管密钥
-
基于跳板机的服务器添加
冒烟全部跑通,但在其中一条关键路径上,出现了一个平台相关、偶现、难复现的小问题:
使用已托管密钥直接连接服务器时,首次连接成功,但 host_key_fingerprint 没有被持久化。
于是,我开始和 AI 定位根因。
二、AI 给出的初步分析(精简版)
-
当前逻辑只在连接失败 + 可信任 Host Key 的分支里,才会保存指纹。
-
密码登录在 Windows 上用
plink,首次连接会输出指纹,能被解析并保存。 -
密钥登录在 Windows 上用
ssh\.exe,连接成功时不会输出指纹,所以拿不到。 -
这和 Docker 重跑无关,只是 Docker 会让 Host Key 频繁变化,更容易暴露问题。
乍一看非常合理,逻辑链完整,甚至连代码行号都精准定位。
但我立刻判断:这个解释不完整,甚至没触达真正根因。
三、我的判断:问题不在工具,在环境
我直接抛出观点:
指纹没有持久化,大概率不是因为
ssh\.exe不输出,而是因为:
本地known\_hosts已经信任过这台服务器,SSH 不再走首次确认流程,所以静默通过。
AI 在几秒内就修正了结论:
-
你说得对。如果本机已经信任该 Host Key,SSH 不会提示、不会输出指纹。
-
当前逻辑依赖 “首次连接提示” 来捕获指纹,一旦环境不是 “首次”,就会丢失。
-
所以表现不稳定:时而能存,时而不能存。
这一步,就是基础知识发挥作用的时刻:
-
懂 SSH Host Key 机制
-
懂
known\_hosts作用 -
懂客户端首次连接与非首次连接的行为差异
没有这些,AI 说什么,你就只能信什么。
四、继续深入:我们该怎么修复?
我继续提出方案:
既然连接已经成功,说明密钥是通的。那我们主动探测一次 Host Key 指纹,然后保存,不就统一了?
AI 表示赞同,但我继续追问:
主动探测前,要不要先删掉本地
known\_hosts,强迫 SSH 重新输出指纹?这样最稳妥。
AI 立刻提醒风险:
-
不建议删用户
known\_hosts,会破坏系统已有信任关系。 -
应该使用独立探测逻辑(
ssh\-keyscan一类),不依赖连接流程,不污染用户环境。
我接受了这个建议,并最终确定方案:
-
不删、不改、不碰用户本机 known_hosts
-
/server add连通成功后 -
如果
host\_key\_fingerprint为空 -
主动触发一次独立探测
-
探测成功则保存,不成功则留空,不影响主流程
-
让逻辑不再依赖认证方式、客户端工具、环境历史
五、整个过程带给我的思考
把这段对话浓缩成三句话:
-
AI 能快速给出表面原因,但不一定能抓到真实根因。
-
AI 能生成代码,但不能帮你判断风险、取舍方案。因为往往方案的决策取决于你的实际使用场景,你的团队情况,客户情况,运行环境等各个方面,AI没有办法直接帮你定稿,他会根据足够的信息给你相对合理的方案,最终决定还是要你拍板
-
AI 越强大,越需要开发者有扎实的基础知识来 “校准” 结果。
很多人觉得 AI 来了,前端不用懂原理、后端不用懂网络、运维不用懂系统。
但真实情况是:
-
你不懂 SSH,你就不知道 Host Key 为什么会丢。
-
你不懂客户端行为,你就不知道为什么有时存有时不存。
-
你不懂安全边界,你就可能写出删
known\_hosts这种破坏性逻辑。
AI 可以写代码,但不能替你理解系统;AI 能补全逻辑,但不能替你判断对错。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)