搞定:Enter passphrase for key提示

使用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

你可能感兴趣的:(Linux)