「Irssi」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
81行目: 81行目:
 
=== SASL で認証 ===
 
=== SASL で認証 ===
   
  +
{{Tip|Irssi バージョン 0.8.18 には SASL のサポートが組み込まれています。}}
{{AUR|irssi-script-sasl}} パッケージを[[インストール]]してください。irssi が起動するたびにスクリプトをロード:
 
   
  +
以下のようにネットワークを追加してください:
$ mkdir -p ~/.irssi/scripts/autorun
 
$ cd ~/.irssi/scripts/autorun
 
$ ln -s /usr/share/irssi/scripts/cap_sasl.pl cap_sasl.pl
 
   
  +
/SERVER ADD -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network freenode -port 6697 irc.freenode.net
irssi を開いて SASL スクリプトを実行して SASL の設定を入力してください。nickserv で登録したメインのニックネーム "your-primary-nick" と "your-password" を使って下さい。認証メカニズムについては [https://freenode.net/sasl/sasl-irssi.shtml こちら] を参照 (DH-BLOWFISH はもはやサポートされていません):
 
  +
/NETWORK ADD -sasl_mechanism plain -sasl_username <username> -sasl_password <password> freenode
 
/RUN cap_sasl.pl
 
/sasl set Freenode ''primary-nick'' ''password'' ''auth''
 
/sasl save
 
/save
 
   
 
{{Note|
 
{{Note|
  +
* ネットワーク名の大文字・小文字が正しいことを確認してください。
* Make sure to use the correct capitalization for the network name.
 
  +
* 最初のコマンドでは [[#SSL 接続|SSL 接続]]でサーバーを追加します。
* Your password will be visible when you type it and can also be seen in {{ic|~/.irssi/sasl.auth}}
 
  +
* 既存のネットワークが存在する場合、2番目のコマンドだけを実行してください。
* If your password contains {{ic|$}}, you have to prefix it with another {{ic|$}} for ''irssi'' to properly parse it.}}
 
  +
* あなたのパスワードに {{ic|$}} が含まれている場合、{{ic|$}} を前に付けることで ''irssi'' が正しく解析できるようになります。}}
   
irssi を再起動すると "Irssi: SASL authentication successful" と表示されます。
+
irssi を再起動してネットワークに接続すると "SASL authentication succeeded" と表示されます。
   
 
=== 起動時に #archlinux に自動で接続 ===
 
=== 起動時に #archlinux に自動で接続 ===
128行目: 123行目:
 
==== クライアント証明書 ====
 
==== クライアント証明書 ====
   
Freenode and OFTC support authentication using SSL certificates, providing an alternative to plaintext passwords. See Freenode's [https://freenode.net/certfp/ Identifying with CERTFP] and [https://freenode.net/certfp/makecert.shtml Creating an SSL Certificate] for more extensive details.
+
Freenode OFTC は平文のパスワード認証の代わりに、SSL 証明書による認証をサポートしています。詳しくは Freenode [https://freenode.net/certfp/ Identifying with CERTFP] [https://freenode.net/certfp/makecert.shtml Creating an SSL Certificate] を見てください。
   
  +
730日間有効な証明書を作成するには (国名や Common Name (CN) などの入力を求められた場合、自由に入力してください):
To create an password-less certificate that is valid for 730 days (when requested to enter details like state or even Common Name (CN), you can fill anything you want):
 
   
 
$ openssl req -newkey rsa:2048 -days 730 -x509 -keyout irssi.key -out irssi.crt -nodes
 
$ openssl req -newkey rsa:2048 -days 730 -x509 -keyout irssi.key -out irssi.crt -nodes
137行目: 132行目:
 
$ rm irssi.crt irssi.key
 
$ rm irssi.crt irssi.key
   
  +
次に、フィンガープリントを確認してください:
Next, find out the corresponding fingerprint:
 
   
 
$ openssl x509 -sha1 -fingerprint -noout -in ~/.irssi/irssi.pem | sed -e 's/^.*=//;s/://g;y/ABCDEF/abcdef/'
 
$ openssl x509 -sha1 -fingerprint -noout -in ~/.irssi/irssi.pem | sed -e 's/^.*=//;s/://g;y/ABCDEF/abcdef/'
144行目: 139行目:
 
Copy the fingerprint string as you will register it in irssi shortly.
 
Copy the fingerprint string as you will register it in irssi shortly.
   
In irssi, disconnect from the network and add the client certificate and keys:
+
In irssi, disconnect from the network and add the client certificate and keys. Omit the -ssl_pass option if your certificate was built without a password:
   
 
/disconnect Freenode
 
/disconnect Freenode
/server add -ssl_cert ~/.irssi/irssi.pem chat.freenode.net
+
/server add -ssl_cert ~/.irssi/irssi.pem -ssl_pass <irssi.pem_password> -network freenode chat.freenode.net 6697
   
 
Now connect (not {{ic|/reconnect}}) and register your fingerprint
 
Now connect (not {{ic|/reconnect}}) and register your fingerprint
270行目: 265行目:
 
==== vhost の有効化 ====
 
==== vhost の有効化 ====
   
  +
ホストネームを指定してサーバーに接続する方法は複数存在します。-host 引数を使用して 'server' コマンドを実行する方法:
There are a couple of ways to connect to a server with a given hostname. One is using the 'server' command with a -host argument like so:
 
 
/server -host example.com irc.freenode.org
 
/server -host example.com irc.freenode.org
  +
'set' コマンドを使用してホストネーム (vhost) を設定する方法 (ホストネームは {{ic|~/.irssi/config}} に保存されます):
Another way would be to set your hostname (vhost) with the 'set' command which will save your hostname to {{ic|~/.irssi/config}}:
 
   
 
/set hostname example.com
 
/set hostname example.com
287行目: 282行目:
 
* [http://pthree.org/2010/02/02/irssis-channel-network-server-and-connect-what-it-means/ Irssi’s /channel, /network, /server and /connect – What it means] by Aaron Toponce
 
* [http://pthree.org/2010/02/02/irssis-channel-network-server-and-connect-what-it-means/ Irssi’s /channel, /network, /server and /connect – What it means] by Aaron Toponce
 
* [http://awesome.naquadah.org/wiki/Irssi_tips awesome Wiki Irssi tips]
 
* [http://awesome.naquadah.org/wiki/Irssi_tips awesome Wiki Irssi tips]
* [https://github.com/GutenYe/systemd-units/tree/master/irssi irssi systemd ユニット]
+
* [https://gist.github.com/drye/5520101 irssi systemd ユニット]

2016年10月8日 (土) 00:16時点における版

関連記事

irssi はモジュール式の、ncurses ベースの IRC (Internet Relay Chat) クライアントです。プラグインにより SILCICB プロトコルもサポートしています。

インストール

irssi パッケージをインストールしてください。

AUR の irssi-script や、irssi スクリプトリポジトリ にはスクリプトが多数用意されています。

使用方法

詳しい使い方は 公式ドキュメント を見て下さい。

ノート: このセクションでは IRC の基本的な知識を既に習得していて他のクライアントを使ったことがあるユーザーを対象にしています。

tmuxScreen などのターミナルマルチプレクサを使うことが推奨されています。簡単にセッションから切断したり再接続することができ、nicklist.pl などのスクリプトはセカンダリウィンドウを使用します。irssi を起動するには、次を実行:

$ irssi

コマンド

コマンド 説明
/server, /s 現在のネットワークサーバーを変更。
/connect, /c 新しくサーバーに接続する。複数のサーバーに同時に接続するときに使います (Ctrl+Shift+x でサーバーを切り替えられます)。
/disconnect, /dc サーバーとの接続を終了する。
ALT+(1-0,q-p,etc) 現在のアクティブウィンドウを変更。Ctrl+n で次のウィンドウに、Ctrl+p で前のウィンドウに変わります。
/window 1 最初のウィンドウに移動。キーボードの上段がウィンドウに対応しています: (1-0), (q-p)。
/window close, /wc カレントウィンドウを閉じる。
/window move 1 カレントウィンドウを最初のウィンドウの位置に移動。
/layout save カレントウィンドウの位置を後で使うために保存。
/set 現在の設定リストを表示。
/help パラメータの説明を表示。
/alias ショートカットを作成。

設定

個人設定ファイルは ~/.irssi/config に配置します。/etc/irssi.conf にテンプレートがあります。--config フラグを使うことで他の設定ファイルを使って irssi を起動できます。

  • /save を使うことで現在の設定を設定ファイルに保存できます。
  • /layout save と入力することで開いているウィンドウの位置を保存できます。

SASL で認証

ヒント: Irssi バージョン 0.8.18 には SASL のサポートが組み込まれています。

以下のようにネットワークを追加してください:

/SERVER ADD -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network freenode -port 6697 irc.freenode.net
/NETWORK ADD -sasl_mechanism plain -sasl_username <username> -sasl_password <password> freenode
ノート:
  • ネットワーク名の大文字・小文字が正しいことを確認してください。
  • 最初のコマンドでは SSL 接続でサーバーを追加します。
  • 既存のネットワークが存在する場合、2番目のコマンドだけを実行してください。
  • あなたのパスワードに $ が含まれている場合、$ を前に付けることで irssi が正しく解析できるようになります。

irssi を再起動してネットワークに接続すると "SASL authentication succeeded" と表示されます。

起動時に #archlinux に自動で接続

irssi を起動して以下を入力してください:

/server add -auto -network freenode chat.freenode.net

freenode は自由な名前に置き換えることができます (例: fn)。

SASL を正しく設定してください。SASL の代わりに -autosendcmd を使って手動で NickServ を使うこともできますが、チャンネルに自動で参加するときに競合状態になってしまいます。出来るだけ、NickServ でパスワードを使うよりも、SSL 証明書で認証してください。

/channel add -auto #archlinux freenode
/channel add -auto #archlinux-offtopic freenode

SSL 接続

Freenode は SSL 接続にポート 6697, 7000, 7070 を使っています (6667 は使っていません)。Freenode IRC ネットワークに SSL を通して接続したい場合、新しい接続をセットアップする必要があります。irssi を起動して次を実行:

/server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network freenode -port 6697 chat.freenode.net

そして新しい設定を保存:

/save

問題なければ "Z" モードがセットされるのが確認できます。次のように表示されます: "Mode change (+Zi) for user your-nick"。

クライアント証明書

Freenode と OFTC は平文のパスワード認証の代わりに、SSL 証明書による認証をサポートしています。詳しくは Freenode の Identifying with CERTFPCreating an SSL Certificate を見てください。

730日間有効な証明書を作成するには (国名や Common Name (CN) などの入力を求められた場合、自由に入力してください):

$ 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

次に、フィンガープリントを確認してください:

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

This will write the fingerprint to stdout. (The sed command is there to format the fingerprint correctly by removing unwanted text and characters.) Copy the fingerprint string as you will register it in irssi shortly.

In irssi, disconnect from the network and add the client certificate and keys. Omit the -ssl_pass option if your certificate was built without a password:

/disconnect Freenode
/server add -ssl_cert ~/.irssi/irssi.pem  -ssl_pass <irssi.pem_password> -network freenode chat.freenode.net 6697

Now connect (not /reconnect) and register your fingerprint

/connect Freenode
/msg NickServ identify YOUR_PASSWORD
/msg NickServ cert add YOUR_FINGERPRINT

At this point, you can remove your password from the configuration file (if you saved it in there) and save your config with:

/save

自動ログイン

/SET autolog ON
/save

join, part, quit を隠す

In order to ignore showing of joining, leaving and quiting of users for all channels type the following in irssi:

/ignore * joins
/ignore * parts
/ignore * quits

See smartfilter to restrict join messages to active users.

Tips and tricks

HTTP プロキシ

irssi で HTTP プロキシを使うには、以下のコマンドが必要です:

/SET use_proxy ON
/SET proxy_address <Proxy host address>
/SET proxy_port <Proxy port>
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
/EVAL SET proxy_string CONNECT %s:%d HTTP/1.0\n\n

irssi should then alter its config file correspondingly; if the proxy is not required, just set use_proxy to OFF.

Should the proxy require a password, try:

/SET proxy_password your_pass

Otherwise:

/SET -clear proxy_password
ノート: SSL behind a proxy will fail with these settings.

tmux で irssi と nicklist

The irssi plugin 'nicklist' offers to add a pane listing the users on the channel currently viewed. It has two methods to do this:

  • screen, which simply adds the list to the right of irssi, but brings the disadvantage that the entire window gets redrawn every time irssi prints a line.
  • fifo, which like the name suggests writes the list into a fifo that can then be continuously read with e. g. cat ~/.irssi/nicklistfifo.

nicklist will use the more efficient fifo with:

/NICKLIST FIFO

This fifo can be used in a tmux window split vertically with irssi in its left pane and the cat from above in a small one in its right. Since the pane is dependent on its creating tmux session's geometry, a subsequent session with a different one needs to recreate it (which also implies a switch in irssi windows to refill the fifo).

E. g., the following script first checks for a running irssi, presumed to have been run by a previous execution of itself. Unless found it creates a new tmux session, a window named after and running irssi and then the pane with cat. If however irssi was found it merely attaches to the session and recreates the cat pane.

#!/bin/bash

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) > 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
ヒント: Instead of doing all this work, this plugin does all the work needed for a nice nicklist inside tmux.

バーチャルホストネーム (vhost)

A vhost can be used to change your hostname when connected to an IRC-server, commonly viewed when joining/parting or doing a whois. This is most commonly done on a server which have a static IP address. Without a vhost it would commonly look like so when doing a 'whois':

nick@123.456.78.90.isp.com

The result of a successfull vhost could be like so if you have the domain example.com available:

nick@example.com

Keep in mind that not every IRC-server supports the use of vhost. This might be individually set between the servers and not the network, so if you are experiencing issues with one server try another on the same network.

必要な設定

irssi supports using a vhost as long as the required configurations has been set. This includes especially that your host supports Recursive DNS Lookup (rDNS) using Pointer record (PTR). Additionally you should add an appropriate line to your /etc/hosts file.

To see if this is working, test with the 'host' DNS lookup utility included in bind-tools like so (where ip is a normal IPv4 address):

host ip

If this returns something in the lines of this then you know that your rDNS is working.

ip.in-addr.arpa domain name pointer example.com

vhost の有効化

ホストネームを指定してサーバーに接続する方法は複数存在します。-host 引数を使用して 'server' コマンドを実行する方法:

/server -host example.com irc.freenode.org

'set' コマンドを使用してホストネーム (vhost) を設定する方法 (ホストネームは ~/.irssi/config に保存されます):

/set hostname example.com
/save
/server irc.freenode.org

参照