Irssi (Español)

From ArchWiki
Esta traducción de Irssi fue revisada el 2021-02-09. Si existen cambios puede actualizarla o avisar al equipo de traducción.

irssi es un cliente IRC (Español) (Internet Relay Chat) modular basado en la biblioteca ncurses. También soporta los protocolos SILC e ICB mediante plugins.

Instalación

Instale el paquete irssi.

Múltiples scripts están disponibles en el AUR con el nombre irssi-script así como en repositorio de scripts de Irssi.

Uso

Para una introducción detallada consulte la documentación oficial.

Nota: Esta sección asume que tiene conocimiento acerca de los fundamentos de IRC y que ha usado otros clientes en el pasado

Se recomienda ejecutar irssi desde un multiplexor de terminal como Tmux (Español) o GNU Screen. Estos permiten al usuario desconectarse y reconectarse fácilmente a una sesión, además scripts como nicklist.pl dependen de una ventana secundaria. Para iniciar irssi, ejecute

$ irssi

Consulte también irssi(1).

Comandos

Los comandos de irssi comienzan con una barra diagonal y no distinguen entre mayúsculas y minúsculas. Puede encontrar información sobre ellos usando el comando /help, la cual también está disponible en línea.

Comando Descripción
/help Mostrar todos los comandos o describir un comando determinado.
/network Gestiona tus redes de IRC.
/server Gestiona tus servidores de IRC.
/connect Conectarse a un servidor o red.
/disconnect Cierra la conexión actual con un servidor.
ALT+(1-0,q-p,etc) Cambia la ventana activa. Ctrl+n pasa a la siguiente ventana, Ctrl+p a la ventana anterior.
/window Gestiona las ventanas de irssi.
/layout Guardar o eliminar la disposición de sus ventanas.
/statusbar Gestiona la barra de estado.
/set Ver o cambiar la configuración de irssi.
/alias Gestiona tus alias.

Configuración

Irssi instala su configuración de defecto en /etc/irssi.conf, si al invocar irssi no se encuentra un archivo de configuración entonces el archivo de defecto es copiado a ~/.irssi/config. La configuración de defecto incluye acceso a múltiples servidores, chatnets y canales. Puedes iniciar irssi con un archivo de configuración alterno usando la bandera --config.

  • La orden /save guardará la configuración actual al archivo de configuración de irssi.
  • La orden /save layout guardará la localización de las ventanas abiertas actualmente.

Autenticación mediante SASL

Irssi soporta autenticación mediante el framework SASL (Español) (Simple Authentication and Security Layer).

Puede agregar una red (network) con SASL siguiendo estas órdenes:

/SERVER ADD -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network libera.chat -port 6697 irc.libera.chat
/NETWORK ADD -sasl_mechanism plain -sasl_username usuario -sasl_password contraseña libera.chat
Nota:
  • Asegúrese de emplear mayúsculas y minúsculas correctamente para el nombre de la red.
  • El primer comando se encarga de agregar un servidor con #Conexión mediante TLS.
  • Sólo ejecute el segundo comando si la red ya existe.
  • Si la contraseña contiene el carácter $ asegúrate de anteponer otro $ para que irssi logre asignarla correctamente.

Reinicie irssi, conecte a la red y busque por el mensaje SASL authentication succeeded.

Conectar automáticamente a #archlinux al iniciar

Inicie irssi y escriba la siguiente orden:

/server add -auto -network libera.chat irc.libera.chat

libera.chat puede ser sustituido por cualquier palabra, por ejemplo la abreviación fn.

Es importante asegurarse que la autenticación mediante SASL esté configurada correctamente. Es posible usar NickServ manualmente con autosendcmd en lugar SASL, sin embargo, esto causa una condición de carrera al unirse automáticamente a canales. Si se desea, también es posible autenticarse usando certificados SSL reemplazando el uso de contraseñas con NickServ.

/channel add -auto #archlinux libera.chat
/channes add -auto #archlinux-offtopic libera.chat

Conexión mediante TLS

Libera.Chat dispone de los puertos 6697, 7000 y 7070 para conexiones SSL/TLS (no 6667). Para conectarse a Libera.Chat mediante TLS es necesario configurar una nueva conexión. Inicie irssi y escriba la orden:

/server add -auto -tls -tls_verify -network libera.chat -port 6697 irc.libera.chat

Guarde los cambios realizados con:

/save

Si todo resultó exitoso se ajustará a "Z" el mode set. Aparecerá un mensaje similar a: Mode change (+Zi) for user su-nick

Certificados de cliente

Redes como Libera.chat y OFTC permiten autenticación mediante certificados SSL, la cual es una alternativa a la autenticación mediante contraseñas en texto plano. Consulte autenticando mediante CERTFP (en Inglés) para conocer a fondo los detalles.

Para crear un certificado válido durante 730 días que no requiera contraseña ejecute los siguientes comandos (cuando se solicite proveer detalles de Common Name o state puede colocar información cualquiera):

$ openssl req -newkey rsa:2048 -days 730 -x509 -keyout irssi.key -out irssi.crt -nodes 
$ cat irssi.crt irssi.key > ~/.irssi/irssi.pem
$ chmod 600 ~/.irssi/irssi.pem
$ rm irssi.crt irssi.key

Seguido, procedemos a obtener el fingerprint del certificado:

$ openssl x509 -sha1 -fingerprint -noout -in ~/.irssi/irssi.pem | sed -e 's/^.*=//;s/://g;y/ABCDEF/abcdef/'

Esta orden hará que el fingerprint sea mostrado en pantalla (el comando sed se encarga de dar un formato correcto al fingerprint al eliminar caracteres innecesarios). Copie la salida del comando anterior, pues ésta será empleada para realizar el registro del certificado en irssi.

Una vez iniciado irssi desconecte de la red y agregue el certificado de cliente junto con las llaves correspondientes. Omita la opción -ssl_pass si el certificado de cliente fue creado sin una contraseña:

/disconnect libera.chat
/server add -ssl_cert ~/.irssi/irssi.pem -ssl_pass <contraseña_de_irssi.pem> -network libera.chat irc.libera.chat 6697

Ahora conecte de nuevo a la red (evite usar la orden /reconnect) y registre su fingerprint:

/connect libera.chat
/msg NickServ identify SU_CONTRASEÑA
/msg NickServ cert add SU_FINGERPRINT

Hasta este punto puede eliminar su contraseña del archivo de configuración (en caso de que haberse configurado de esta forma) y guardar la configuración actual con la orden:

/save

Registro automático

/set autolog on
/save

Ocultar joins, parts y quits

Con el fin de ignorar los mensajes automáticos mostrados cuando un usuario ingresa (joins), deja (leaves) y cierra su conexión (quits) a un canal podemos ingresar la siguiente orden, la cual evitará estos mensajes en todos los canales en los que hayamos ingresado:

/ignore * joins parts quits

Véase smartfilter para restringir mensajes join únicamente a usuarios activos.

Desplazamiento con el ratón

Para habilitar el desplazamiento con el ratón escriba la siguiente orden:

/run scriptassist
/script install mouse.pl

Para habilitar automáticamente este script cuando irssi inicia ejecute el comando:

/script autorun mouse.pl

Trucos y consejos

Proxy HTTP

Para ejecutar irssi detrás de un servidor proxy HTTP es necesario ejecutar las siguientes instrucciones:

/SET use_proxy ON
/SET proxy_address <Dirección IP del proxy>
/SET proxy_port <Puerto del proxy>
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
/EVAL set proxy_string connect %s:%d HTTP/1.0\n\n

Irssi alterará su archivo de configuración correspondiente; si el proxy no es necesario configure nuevamente use_proxy a OFF.

Si el proxy requiere una contraseña ejecute la orden:

/SET proxy_password <contraseña>

En caso de que la contraseña ya no sea necesaria escriba:

/SET -clear proxy_password
Nota: Configurar SSL detrás de un proxy hará que la conexión falle si se utilizan estos ajustes

Lista de usuarios con tmux

El plugin nicklist agrega un panel que lista los nicks de los usuarios conectados al canal actual. Existen dos formas de usarlo:

  • screen, el cual simplemente agrega la lista a la derecha de irssi, sin embargo toda la ventana se redibuja cada vez que irssi imprime una linea.
  • fifo, como su nombre lo sugiere escribe la lista en un archivo fifo (first in first out), el cual puede leerse de forma continua con alguna orden como cat ~/.irssi/nicklistfifo.

La lista de usuarios con fifo será más eficiente con con el comando:

/NICKLIST FIFO

Este archivo fifo se puede utilizar en un panel de tmux dividido verticalmente, con irssi en un panel izquierdo y la salida de la orden cat anterior en un panel pequeño a su derecha. Dado que el panel depende de la dimensión de la sesión tmux que lo crea, una sesión posterior con una diferente geometría necesita recrearlo (lo que también implica un cambio en las dimensiones de la ventana de irssi).

Por ejemplo, el siguiente script primero comprueba si irssi está en ejecución, si no se encuentra se crea una nueva sesión de tmux, una ventana con el nombre irssi y posteriormente ejecuta la orden irssi, finalmente crea un panel derecho con la salida de la orden cat. Sin embargo, si irssi está en ejecución, simplemente se adjunta a la sesión y recrea el panel con cat.

#!/bin/sh

T3=$(pgrep -u "$USER" -x irssi)

irssi_nickpane() {
    tmux setw main-pane-width $(( $(tput cols) - 21));
    tmux splitw -v "cat ~/.irssi/nicklistfifo";
    tmux selectl main-vertical;
    tmux selectw -t irssi;
    tmux selectp -t 0;
}

irssi_repair() {
    tmux selectw -t irssi
    [ "$(tmux lsp | wc -l)" -gt 1 ] && tmux killp -a -t 0
    irssi_nickpane
}

if [ -z "$T3" ]; then
    tmux new-session -d -s main;
    tmux new-window -t main -n irssi irssi;
    irssi_nickpane ;
fi
    tmux attach-session -d -t main;
    irssi_repair ;
exit 0
Sugerencia: En lugar de realizar los pasos anteriores use este plugin, el cual se encarga de crear un panel con la lista de usuarios dentro de tmux.

Hostname virtual (vhost)

Un vhost puede ser usado para cambiar el hostname cuando irssi está conectado a un servidor de IRC, el hostname es visto cuando se une/parte o algun otro usuario ejecuta la orden whois. Asignar un vhost se hace con frecuencia en los servidores que tienen una dirección IP estática. Sin un hostname virtual la salida de la orden whois se vería así:

nick@123.456.78.90.isp.com

Por otra parte, el resultado de un vhost configurado sería el siguiente, siempre y cuando se tenga el dominio ejemplo.com disponible:

nick@ejemplo.com

Tome en cuenta que no todos los servidores de IRC soportan el uso de vhost. Esto puede ser configurado individualmente entre los servidores y no la red, así que si estás experimentando problemas con un servidor prueba con otro en la misma red.

Preconfiguraciones necesarias

Irssi soporta el uso de un hostname virtual siempre y cuando se hayan establecido las configuraciones requeridas. Esto incluye que su host soporte Búsqueda DNS inversa (rDNS) usando Registro de puntero (PTR). Además, debe añadir la línea apropiada a su archivo /etc/hosts.

Para ver si esto funciona, pruebe con la utilidad de búsqueda de DNS del host incluida en bind de la siguiente forma (donde ip es una dirección IPv4 normal):

host ip

Si esta orden devuelve algo similar a la siguiente linea entonces su rDNS está trabajando.

ip.in-addr.arpa nombre de dominio puntero ejemplo.com

Habilitar el vhost

Hay un par de maneras de conectarse a un servidor con un hostname determinado. Una de ellas es utilizar el comando server con un argumento -host como el siguiente:

/SERVER -host ejemplo.com irc.libera.chat

Otra forma sería establecer el hostname (vhost) con la orden set que guardará tu hostname en ~/.irssi/config:

/SET hostname ejemplo.com
/SAVE
/SERVER irc.libera.chat

Véase también