使用ssh-genkey生成公用key,但是自己使用时会多次提示,Enter passphrase for key,这儿给出如何解决。
在${HOME}/.bashrc中增加如下代码:
- alias auto_passphrase=auto_passphrase
- SSH_ENV=~/.ssh/environment
- # start the ssh-agent
- function start_agent {
- echo "Initializing new SSH agent…"
- # spawn ssh-agent
- ssh-agent | sed 's/^echo/#echo/' > "$SSH_ENV"
- echo succeeded
- chmod 600 "$SSH_ENV"
- . "$SSH_ENV" > /dev/null
- ssh-add
- }
- # test for identities
- function test_identities {
- # test whether standard identities have been added to the agent already
- ssh-add -l | grep "The agent has no identities" > /dev/null
- if [ $? -eq 0 ]; then
- ssh-add
- # $SSH_AUTH_SOCK broken so we start a new proper agent
- if [ $? -eq 2 ];then
- start_agent
- fi
- fi
- }
- #auto_ssh
- function auto_passphrase {
- # check for running ssh-agent with proper $SSH_AGENT_PID
- if [ -n "$SSH_AGENT_PID" ]; then
- ps -ef | grep "$SSH_AGENT_PID" | grep ssh-agent > /dev/null
- if [ $? -eq 0 ]; then
- test_identities
- fi
- # if $SSH_AGENT_PID is not properly set, we might be able to load one from
- # $SSH_ENV
- else
- if [ -f "$SSH_ENV" ]; then
- . "$SSH_ENV" > /dev/null
- fi
- ps -ef | grep "$SSH_AGENT_PID" | grep -v grep | grep ssh-agent > /dev/null
- if [ $? -eq 0 ]; then
- test_identities
- else
- start_agent
- fi
- fi
- }
原始文章:http://wooley.me/archives/589