LoginSignup
9
8

More than 5 years have passed since last update.

Gitを使うとき、ssh-agentが増殖してしまう問題のシンプルな解法

Last updated at Posted at 2014-08-25

今までのやり方

.bashrcにこう書いていた。

eval `ssh-agent`
ssh-add

ssh-agentはbashを閉じても死なないので、このやり方だと、bashを開く度にssh-agentのプロセスが増殖してしまう。

解決方法

ssh-agentの出力をファイルに吐き出して、使いまわす

Windows版Gitの場合

  • start-ssh-agent.bat(ssh-agent起動スクリプト。スタートアップ時などに呼び出せばいい)
set git="C:\Program Files\Git\bin\sh.exe"
%git% --norc -c "/bin/ps | /bin/grep -q ssh-agent && /bin/ps | /bin/grep ssh-agent | /bin/gawk '{print $1}' | /bin/xargs /bin/kill"
%git% --norc -c "/bin/mkdir -p /var && /bin/ssh-agent > /var/ssh-agent.out"
  • .bashrc
eval `cat /var/ssh-agent.out`
ssh-add

Linuxの場合

※Windows版と内容はまったく同じ。むしろこっちのほうがシンプル。

  • start-ssh-agent.sh(ssh-agent起動スクリプト。スタートアップ時などに呼び出せばいい)
ps ax | awk '$5 ~ /^ssh-agent/{print "kill "$1}' | sh
ssh-agent > /var/ssh-agent.out
  • .bashrc
eval `cat /var/ssh-agent.out`
ssh-add
9
8
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
9
8