tmuxでデタッチした後にアタッチするとssh-agentがうまく動かない場合の対処法


ローカルの開発環境でtmuxを使って作業していた時に、デタッチして、アタッチするとssh-agentがうまく動かないという問題が発生しました。

調べたところ、ssh-agentの環境変数がtmuxでうまく引き継げないとのこと。

ローカル環境の.zsh_profileに以下を追加したところうまく環境変数を引き継げるようになりました。

# ~/.zsh_profile

SOCK="/tmp/ssh-agent-$USER"
if test $SSH_AUTH_SOCK && [ $SSH_AUTH_SOCK != $SOCK ]
then
    rm -f $SOCK
    ln -sf $SSH_AUTH_SOCK $SOCK
    export SSH_AUTH_SOCK=$SOCK
fi

参考にさせていただいたサイトには2台のクライアントからアクセスする場合は上記だとうまく動かないとあったのですが、ローカル開発環境なのでよしとしました。

参考