今天第一次知道IRC这个东东。
然后在emacs上执行 M-x erc-tls
一路回车默认过来,
我猜是不是要先注册啥的 Nickname Registration | Libera Chat
但是
> /nick xxxx
直接就
是怎么回事?
我是用brew装的emacs-plus@29
今天第一次知道IRC这个东东。
然后在emacs上执行 M-x erc-tls
一路回车默认过来,
我猜是不是要先注册啥的 Nickname Registration | Libera Chat
但是
> /nick xxxx
直接就
是怎么回事?
我是用brew装的emacs-plus@29
Libera 特意“关照”了大陆 IP,除非已经有验证过邮箱(光只是注册还不行)的账号不然不能用 SASL,也不能用纯文本。
你输入 /nick 的时候早就已经被断了链接
要么挂梯子,要么用纯文本链接的 要么用网页客户端 https://web.libera.chat/ 完成注册和邮箱验证才能用 SASLM-x erc,
总结分享一下使用ERC
因为  SASL access only IP ranges ,在国内使用连接IRC网络需要 an existing NickServ account with a verified email address
通过 https://web.libera.chat/ 网页客户端,先登录(连接不上的话,请科学家)这里的登陆不需要账号密码,直接上,一般会随机一个usename给你,游客身份
在 Libera.chat 对话框输入
/nick YourNick
这个YourNick其实就是username,这个命令就是让你填写你的账号一样
然后
/msg NickServ REGISTER YourPassword [email protected]
YourNick就是账号,YourPassword就是密码
然后会发送一封邮件到你的邮箱。然后按照邮箱里面的命令执行一下就注册好了
在emacs中,C-h v erc-modules,选择customize 这个变量,然后把sasl加进来,因为IP的限制,必须通过sasl,不然不识别hostname
在*scratch* buffer 中 (erc-tls :server "irc.libera.chat" :port "6697" :nick "YourNick" :user "YourNick" :password "YourPassword") 按C-j执行就可以登陆了
这个nick到无所谓,关键是 :user和:password 必须要
erc-sasl-user and erc-sasl-password 就是上面的YourNick,YourPassword, 然后M-x erc-tls就可以了感谢大佬,自己读了两天手册折腾了两天还是没弄成,靠您的方法终于成功了
现在连网页版都要求认证了,不知道他们在搞什么
ERC 可以用自签证书认证 SASL,不用存 IRC 密码
openssl req -x509 -new -newkey ed25519 -sha256 -nodes -out libera.crt -keyout libera.key
# 以下输出作为 fingerprint 上传 /msg NickServ CERT ADD <fingerprint>
openssl x509 -in libera.crt -noout -fingerprint -sha512 | awk -F= '{gsub(":",""); print tolower ($2)}'
(use-package erc
  :defer t
  :init
  (setq
   erc-insert-timestamp-function 'erc-insert-timestamp-left
   erc-timestamp-format "%H%M "
   erc-sasl-mechanism 'external
   erc-sasl-user :nick
   erc-autojoin-timing 'connect)
  :custom
  (erc-modules '(autojoin button completion fill irccontrols
                          list match move-to-prompt networks
                          sasl
                          noncommands readonly stamp spelling track)))
注意 client-certificate 的路径不能有 ~,不然 erc 进程会挂掉。
(erc-tls :server "irc.libera.chat" :port 6697
         :nick "ldb"
         :client-certificate '("/Users/ldbeth/.emacs.d/libera.key"
                               "/Users/ldbeth/.emacs.d/libera.crt"))