Advertisement
AnrDaemon

ssh-agent.sh

Jul 20th, 2021
1,398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.81 KB | None | 0 0
  1. #!/bin/sh
  2. # NB: Script assumes enhanced `getopt' ( $( getopt -T ); $? == 4 )
  3.  
  4. [ -x /usr/bin/ssh-agent ] || return
  5. [ -d "/run/user/$( id -u )" ] || return
  6.  
  7. _agent="$HOME/.ssh/agent"
  8. eval set -- $( getopt --shell=sh -o 'k' -- "$@" )
  9.  
  10. test -f "$_agent" && . "$_agent"
  11.  
  12. if [ "$SSH_AGENT_PID" ]; then
  13.   test "$1" = "-k" && /usr/bin/ssh-agent -k > /dev/null 2>&1
  14.  
  15.   if ! kill -0 "$SSH_AGENT_PID" 2> /dev/null; then
  16.     # Reap dead agent's socket
  17.    rm "$SSH_AUTH_SOCK" "$_agent" 2> /dev/null
  18.     unset SSH_AUTH_SOCK SSH_AGENT_PID
  19.   fi
  20. fi
  21.  
  22. test "$1" = "-k" && exit
  23. test "$SSH_AGENT_PID" && return
  24.  
  25. socket="$( mktemp -u "/run/user/$( id -u )/ssh-XXXXXXXX" )"
  26. eval $( /usr/bin/ssh-agent -sa "$socket" | tee "$_agent" )
  27.  
  28. # Remove empty settings file (agent failed to start).
  29. test -s "$_agent" || rm "$_agent"
  30.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement