tmux+zsh で SSH_AUTH_SOCK を手軽に更新する
エージェントフォワーディングを有効にしてログインした先で tmux にアタッチした際、既存のシェルの SSH_AUTH_SOCK
が更新されません。
これを、ショートカットキーで手軽に更新する方法です。
以下を .zshrc
あたりに書いておくと、アタッチした後 Alt+s
するだけで、SSH_AUTH_SOCK
が更新されます。
if [ -n "${TMUX}" ]; then
# 既存のシェルの SSH_AUTH_SOCK を更新
function update_ssh_auth_sock() {
NEWVAL=`tmux show-environment | grep "^SSH_AUTH_SOCK" | cut -d"=" -f2`
if [ -n "${NEWVAL}" ]; then
SSH_AUTH_SOCK=${NEWVAL}
fi
}
# widget 化する
zle -N update_ssh_auth_sock
# ショートカットキー割り当て
bindkey "^[s" update_ssh_auth_sock
fi