2012年7月19日星期四

tmux 小技巧一则: 显示 ssh 远程主机名

tmux 和 screen 运行在本机,仅仅当作一个窗口管理器的情况应该很多见。一般我都会开很多窗口, ssh 到不同的机器。tmux 默认会显示命令的名字作为窗口的名字,这里就是一堆 ssh,当要切换到不同的主机时,会特别麻烦,需要一个个的找。将下面这些代码贴到 ~/.bashrc 里面,就可以显示窗口的名字为远程主机名


 function on_exit(){
    printf "\033kbash\033\\"
    tmux set-window-option automatic-rename on  >/dev/null 2>&1
    trap - SIGINT SIGTERM
}

function ssh() {
    if [ $TERM = "screen" ];then
        trap on_exit SIGINT SIGTERM
        a=${1##*@};
        printf "\033k$a\033\\"
        /usr/bin/ssh $@
        printf "\033kbash\033\\"
    else
        /usr/bin/ssh $@
    fi
    tmux set-window-option automatic-rename on  >/dev/null 2>&1
} 


关于 tmux 的窗口名字设置,man tmux 搜索  “NAMES AND TITLES” 有详细信息。trap 函数是为了 Ctrl-C 或者 ssh 推出的时候重置 tmux 窗口名字。

2012年7月2日星期一

openssl CA, server, client 的key,证书的生成以及验证流程

这篇文章只是一个流程的介绍,没有任何具体命令,在 http://www.garex.net/apache/#CAopensslcnf 有一个很好的例子

此过程中涉及到的文件有三种
  1. 私钥,公钥可以从私钥直接生成。
  2. 证书请求,用来发送给 CA,请求签名生成一个证书
  3. 证书,用来验证身份,公钥可以从证书里面获得

创建一个 CA:
  1. 生成私钥
  2. 根据私钥生成签名请求(.csr 文件)
  3. 使用私钥自签名 .csr 文件,生成 CA 的证书文件(.crt)

服务器:
  1. 生成私钥
  2. 生成证书签名请求文件
  3. 使用 CA 的证书文件和私钥签名生成服务器的证书文件
客户端:
  1. 生成私钥和签名请求
  2. CA 使用其证书和私钥,生成客户端的签名证书文件
   
客户端和服务器验证:
服务器端可以设置是否验证客户端 ,服务器本身的证书只是用来加密会话,不起到任何验证客户端的作用。设置验证客户端时,服务器上的服务一般可以设置信任单个或多个 CA 证书文件,当客户端发送其客户端证书到服务器时,CA 证书来完成对客户端的验证过程。客户机通过是否接受服务器证书来验证服务器

2012年4月23日星期一

Vim自动补全括号

把如下代码拷贝到 .vimrc里面,即可获得一些自动补全括号的功能
  • 输入左括号自动补全又括号,并回退光标到括号之间
  • 快速输入左右部分,则没有补全,只会回退光标
  • 连续输入两个左括号则视为输入一个括号
  • 输入左括号并回车,补全又括号并在两个括号之间插入一个空行

function! SetPairMap(...)
    for var in a:000
        let start = var[0]
        let end   = var[1]
        execute "inoremap".start. " ".start.end."<Left>"
        execute "inoremap".start."<CR> ".start."<CR>".end."<ESC>O"
        execute "inoremap".start.start." ".start
        execute "inoremap".start.end." ".start.end."<Left>"
    endfor
endfunction
call SetPairMap(["(", ")"], ["[", "]"], ["{", "}"])
实际上你可以修改最后一行的函数调用语句,加入你想要的任何字符对

2012年3月29日星期四