如何将 bash 变量(密码)传递给 IRSSI 配置文件?

如何将 bash 变量(密码)传递给 IRSSI 配置文件?

我正在使用 IRSSI,我想知道如何将我的 IRC 频道的密码传递给 IRSSI 配置文件(~/.irssi/config),而不是直接将它们写入文件中。

在 Mutt 中我有一个 awk 命令,可以查询我加密的主文件夹中的本地文件,如下所示:

set my_pass1=`awk '/fradeve_gmail:/ {print $2}' ~/.mutt/muttpass`
set my_pass2=`awk '/fradeve_inventati:/ {print $2}' ~/.mutt/muttpass`

IRSSI 有类似的解决方案吗?

附言:显然我想要将 IRSSI 配置文件保存在我的加密主页中:)

答案1

这取决于您存储密码的方式?如果您只是将密码放在 中autosendcmd,则可以采用与 相同的技巧awk

http://irssi.org/beginner/#c3例如:

/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC

答案2

我试图解决完全相同的问题 - 似乎您无法轻松地将 bash 变量传递给 irssi 配置。首先,将密码存储在纯文本文件或环境变量中并不是一个好主意。

如果你要连接到 freenode,你可以使用SAS 连接层或者认证远程教育培训计划
以下是展示如何设置 SASL 的教程(向下滚动到脚本部分)。

答案3

在使用 NickServ 或其他 Bot 的服务器上,您需要发送消息来识别自己,您可以使用以下命令:

  1. 创建一个 shell 脚本,输出您需要发送给机器人的消息,将其保存到您的 irssi 配置文件夹并使其可执行。对于 NickServ:
    echo "IDENTIFY $(command that returns nick) $(command that returns password)"
  1. 在您的连接上输入以下内容,autosendcmd用您之前保存的脚本名称替换脚本名称:
    /EXEC - -msg NickServ ./script_name

当你连接到服务器时,它将autosendcmd执行你的 shell 脚本并将其输出作为消息发送给 NickServ。

我使用的是 Mac,所以我的昵称和密码已加密并保存在我的钥匙串上。我用来检索它们的命令是:

  • 缺口:
/usr/bin/security find-generic-password -l <keychain_password_name> | grep acct | cut -d '"' -f 4
  • 密码:
/usr/bin/security find-generic-password -wl <keychain_password_name>

这样,您的 irssi 配置文件中就不会出现任何纯文本密码。

相关内容