73
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

tmux で attach したら ssh-agent が切れる場合

Last updated at Posted at 2015-08-03

ForwardAgent が有効な状態で、ssh ログインしなおすと、環境変数SSH_AUTH_SOCK が新しいパスをさすようになる。ここで tmux attach すると、tmux セッション上のシェルは以前の SSH_AUTH_SOCK の値を保持し続けていて、別の所を指しているのでうまくいかない。

~/.bashrc に

agent="$HOME/.ssh/agent"
if [ -S "$SSH_AUTH_SOCK" ]; then
	case $SSH_AUTH_SOCK in
	/tmp/*/agent.[0-9]*)
		ln -snf "$SSH_AUTH_SOCK" $agent && export SSH_AUTH_SOCK=$agent
	esac
elif [ -S $agent ]; then
	export SSH_AUTH_SOCK=$agent
else
	echo "no ssh-agent"
fi

のようなものを追加しておくと、ログインするたびに $HOME/.ssh/agent に symlink を貼るようになる。そして SSH_AUTH_SOCK は常に $HOME/.ssh/agent を見るようにしているので、古い tmux セッションでも最新の SSH_AUTH_SOCK の場所を指せるようになる。

$HOME/.ssh は通常 700 になっているので、他の人に盗まれることもなくて安心。

73
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?