整理了篇文章,分享如何配置配置一些插件需要的 LLM API key

网上有很多可以使用 LLM API 的插件,例如 gptel,他们都需要配置对应的 API key 才可以使用。

LLM 有很多,除了一些官方的如 Openai,Deepseek,还有一些集成了很多 LLM 的平台,如 Openrouter,Silicomflow。

一开始配置他们,虽然拿到了 key,但是不知道应该放在哪里让插件读取。

依靠问 LLM,知道了要放在 .authinfo 中,或者 gpg 加密的 .authinfo.gpg 中。

我把对这些配置的了解记了下来,或许对和我有类似疑惑的人有帮助:

这里头,解密 gpg 文件,既可以用 EPA,也可以用 pass。

EPA 不用配置什么,开箱即用,但我看到有的人会用 pass,我想知道这两者的主要差异是什么,为什么会选择 pass 呢?

2 个赞

pass可以管理密码,iOS 上也可以用对应的客户端去管理。

原来如此~

看来我不太需要 pass,只是在 emacs 中偶尔需要 gpg 解密,epa 看起来足够了。

想了想,authonfo 需要加密吗?

毕竟是本地文件,除非是别人用自己电脑看,或者被黑了,一般来说应该不存在什么泄漏的问题吧。

我想到需要加密的一种场景就是多端同步,或者分享出去,这个时候只希望特定的人能看到内容,就有必要进行加密。

epg 有上游 gpg 改动导致加密内容损坏的先例,可以䃼发的 API key 也就算了,重要密码建议另外备份

5 个赞

用 pass 的话,是不是应该将 api key 存储在 pass 里,用 pass 读取,和 authinfo 好像无关了?

是的,不过有一些情况还是需要 .authinfo 的。

因为 pass 当中是以文件的形式保存每个条目,文件名中不能出现 / 字符。具体到例子的话,就是在 forge 当中设置自建的 gitlab 的时候,条目的名称必须是 example.com/api/v4,具体参考 Forge User and Developer Manual ,这个时候就需要保存在 .authinfo 当中才行。

对于这种情况,我是把 gitlab 的条目名称从含有 / 改为不含 / 去存储,然后写了函数去查看 authinfo 当中是否有相关条目,没有就从 pass 中读取写入,这样也相当于不用维护 .autoinfo 了,不知道有没有更好的方案。

1 个赞

我只是想简单配置一下一些 API key,没有太多同步,管理 key 的需求,authinfo 足够了,也比较简单。

除了上面说到的可以在多个设备管理 key,我想知道你为什么不太想用 authinfo,而是选择 pass?

看起来你想摆脱 authinfo,尽量都统一用 pass 管理,是因为 authinfo 存在什么问题吗

因为我的密码也是 pass 管理,那么尽量用一个工具,没其他什么原因。

了解了,thanks~

重要文件也要经常备份 :smiling_face_with_tear:

不要在任何地方(包括你信任的设备上)明文保存密码