2013年4月24日 星期三

Debian 修改並重編譯套件

下載 source package

$ apt-get source [package]


下載編譯時期需要的套件

$ apt-get build-dep [package]


修改原始碼以後,撰寫 changelog

$ dch -i


編譯並產生套件

$ debuild -uc -us -b



Debian Wheezy ibus-chewing 新酷音部份設定值無法儲存的 bug

這個 bug 會發生在你變更 ibus-chewing 設定值的時候發生,症狀就是設定完按儲存以後重登,部份的設定值會被重設為最小值。最惱人的地方就是最大容納中文字數會只剩下八。單位似乎是 byte,所以在 utf8 環境下你大概打三個中文字就會被強制送出去。

新版的 ibus-chewing 已經修正了這個問題,但 Debian Wheezy 收錄的版本卻還是舊的 1.3.10。雖然個人四月初在 gentoo 那邊找到社群的 patch,也轉錄了這個 issue & patch 到 debian(#704947),不過似乎在 Wheezy 正式 release 之前是不會收的。

在 Debian 正式接受 patch 之前,可以暫時用筆者包的安裝檔:

GnuPG 實用命令


匯出公鑰

$ gpg  --export -a -o [filename] [name]


匯出私鑰

$ gpg --export-secret-key -a -o [filename] [name]


為檔案產生分離式簽章(detached signature)

$ gpg --detach-sign -a [input_file]


驗證檔案簽章

$ gpg --verify [signature_file]


檔案簽名並加密

$ gpg -sea [input_file]


檔案解密

$ gpg -d [encrypted_file]


2013年4月11日 星期四

ssh 建立 SOCKS proxy 讓 Firefox 走 ssh tunnel 或 reverse tunnel

在受限制的網路環境下可以透過建立 SOCKS server 讓 Firefox 穿牆。

$ ssh -D [local_port] -Nf [remote_host]

[local_port] 填入要在 localhost 監聽的 port,[remote_host] 填入 ssh 連線的位址。"-N" 是指不要 login shell,"-f" 放背景執行,也許還可以加個 "-C" 進行壓縮。

之後 Firefox 開啟 proxy 設定,選用 SOCKS v5。主機填 localhost,port 照上面填就可以了。

若要反過來建立一個可以從自由公開網路連進私有網路的 SOCKS server,只要先建立一條 reverse tunnel  即可。

在網路受限的主機上建立 reverse tunnel:

$ ssh -NfR [remote_port]:localhost:22 [remote_host]

在自由網路上的主機需要在 /etc/ssh/sshd_config 裡加上 GatewayPorts=yes,不然會綁到 localhost 去而不是開放網路。

在自由網路上的主機建立 SOCKS server:

$ ssh -D [local_port] -Nf localhost -p [remote_port]

另外為了預防自動斷線,可以在 ~/.ssh/config 中加入 serveraliveinterval 60。