ssh-agentを一度起動すると、ログアウトしてもプロセスが残ったままになるので要注意。
######################################################################## ## 実証 : ssh-agentを一度起動するとログアウトしてもプロセスは残ったまま ######################################################################## ## 検証環境 ubuntu1410@ubuntu1410:~$ uname -a Linux ubuntu1410 3.16.0-23-generic #31-Ubuntu SMP Tue Oct 21 17:56:17 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux ## ログインしてssh-agentを起動する、その後ログアウト ubuntu1410@ubuntu1410:~$ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-rHUra7orSbjX/agent.1503; export SSH_AUTH_SOCK; SSH_AGENT_PID=1504; export SSH_AGENT_PID; echo Agent pid 1504; ubuntu1410@ubuntu1410:~$ ps -aef |grep ssh-agent ubuntu1+ 1504 1 0 23:26 ? 00:00:00 ssh-agent ubuntu1+ 1506 1470 0 23:26 pts/1 00:00:00 grep --color=auto ssh-agent ubuntu1410@ubuntu1410:~$ exit ## 再ログインしてプロセスを調べると、前回ログイン時のプロセスが残っている ubuntu1410@ubuntu1410:~$ ps -aef |grep ssh-agent ubuntu1+ 1504 1 0 23:26 ? 00:00:00 ssh-agent ubuntu1+ 1578 1561 0 23:27 pts/1 00:00:00 grep --color=auto ssh-agent # /tmpの下にもファイル(ソケット)が残ったままの状態 ubuntu1410@ubuntu1410:~$ ls -lR /tmp/ /tmp/: 合計 4 drwx------ 2 ubuntu1410 ubuntu1410 4096 4月 20 23:26 ssh-rHUra7orSbjX /tmp/ssh-rHUra7orSbjX: 合計 0 srw------- 1 ubuntu1410 ubuntu1410 0 4月 20 23:26 agent.1503
プロセスをkillするには単純にkillコマンドでも良いが、せっかくなのでssh-agentでkillしてみる。
## ssh-agentのプロセスをkillする # まずは環境変数SSH_AGENT_PIDを設定する(ssh-agentを起動した時のコンソール出力参照) ubuntu1410@ubuntu1410:~$ SSH_AGENT_PID=1504; export SSH_AGENT_PID; # agentをkillする ubuntu1410@ubuntu1410:~$ ssh-agent -k unset SSH_AUTH_SOCK; unset SSH_AGENT_PID; echo Agent pid 1504 killed; # プロセスが消えた ubuntu1410@ubuntu1410:~$ ps -aef |grep ssh-agent ubuntu1+ 1655 1561 0 23:41 pts/1 00:00:00 grep --color=auto ssh-agent # /tmpにあったファイル(ソケット)も消えた ubuntu1410@ubuntu1410:~$ ls -lR /tmp/ /tmp/: 合計 0
残っているプロセスを再利用するなら、環境変数を設定すれば良い。
## 残っているssh-agentのプロセスを再利用するには ## 環境変数 SSH_AGENT_PID と SSH_AUTH_SOCK を再設定すれば良い ubuntu1410@ubuntu1410:~$ SSH_AGENT_PID=1709; export SSH_AGENT_PID; ubuntu1410@ubuntu1410:~$ SSH_AUTH_SOCK=/tmp/ssh-uEZcqFuwDSKJ/agent.1708; export SSH_AUTH_SOCK; # agentに登録済みの鍵を調べれば、どのプロセスを再利用するのか探るのに役立つかも ubuntu1410@ubuntu1410:~$ ssh-add -l 2048 46:08:71:de:3d:ef:38:3b:5b:7a:96:7b:7a:82:b0:f0 id_rsa_ubuntu (RSA) 2048 0e:f4:77:b2:3d:0f:2d:e5:ca:a2:54:ca:3d:36:f9:f7 .ssh/id_rsa (RSA)
参考
http://d.hatena.ne.jp/flying-foozy/touch/20111206/1323160144