2009-06-26
■[program][bash]ssh-agentによるパスフレーズスキップ
今作業中の環境では、まず踏み台へsshでログインし、その後本命のマシンへssh接続しています。しかし、踏み台と本命マシンで鍵が異なるため、本命マシンへの接続時に毎回パスフレーズを入力する必要があって面倒に感じていました。
踏み台ログイン後にssh-agentを起動しても、別ターミナルで踏み台にログインするとそちらではssh-agentの設定が反映されません。
色々と調べていると、ssh-agent起動時にSSH_AGENT_PIDとSSH_AUTH_SOCKの2つの環境変数が設定され、sshはこの設定を元にssh-agentに認証させるらしい、ということが分かりました。
そこで、ログイン時にssh-agentが起動していたら環境変数を設定するよう.bash_profileに記述することにしました。
#!/bin/bash ################################# # SSH-AGENT check. ################################# user_name=`who am i | awk '{print $1}'` ssh_agent_pid=`ps -U $user_name | grep -v grep | grep ssh-agent | awk '{print $1}'` ssh_sock_dir=/tmp/`ls -l /tmp | grep "$user_name" | awk '{print $9}'` ssh_auth_sock=$ssh_sock_dir/`ls -l $ssh_sock_dir | grep "$user_name" | awk '{print $9}'` if [ "$ssh_agent_pid" != "" -a "$ssh_auth_sock" != "" ] then echo ssh-agent running!!! SSH_AGENT_PID=$ssh_agent_pid SSH_AUTH_SOCK=$ssh_auth_sock SSH_AGENT_CHECKED="yes" export SSH_AGENT_PID export SSH_AUTH_SOCK export SSH_AGENT_CHECK fi unset user_name unset ssh_agent_pid unset ssh_sock_dir unset ssh_auth_sock
また、ログアウト時にssh-agentをkillし忘れて大変なことにならないよう、.bash_logoutに次のように設定しました。
#!/bin/bash ################################# # SSH-AGENT check & kill. ################################# if [ "$SSH_AGENT_PID" != "" -a "$SSH_AUTH_SOCK" != "" -a "$SSH_AGENT_CHECKED" != "yes" ] then ssh-agent -k fi
ssh-agentが起動していてかつSSH_AGENT_CHECKEDがyesで無い場合、つまりssh-agentを起動したターミナルの場合のみ、ssh-agentをkillします。
トラックバック - http://d.hatena.ne.jp/fullry/20090626/p1
リンク元
- 767 http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?PLAYSTATION Eye
- 101 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GWYH_jaJP323JP323&q=ipodtouch+hack
- 36 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=t1T&q=ps3eye&btnG=検索&lr=
- 29 http://hatena.g.hatena.ne.jp/bbs?word=プロフ 画像
- 28 http://www.google.co.jp/search?hl=ja&q=pc+wifi+設定&lr=&aq=0&oq=PC+wifi
- 26 http://www.google.co.jp/search?hl=ja&source=hp&q=pc+wifi+設定&btnG=Google+検索&lr=&aq=0&oq=PC wifi
- 22 http://www.google.co.jp/search?hl=ja&q=wifi+pc+設定&lr=&aq=0&oq=wifi+pc+
- 19 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=gII&ei=b1xXSv7jN4zm6gPnx4mWCw&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=solaris+hostname+-s&spell=1
- 16 http://q.hatena.ne.jp/1125838866
- 15 http://www.google.co.jp/search?hl=ja&source=hp&q=solaris+hostname&lr=lang_ja&aq=1&oq=solaris+ho
