网上有很多可以使用 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 管理,那么尽量用一个工具,没其他什么原因。