12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #############################################################################
- #
- # SSH Environment Setup
- #
- #############################################################################
- SSH_ENV=$HOME/.ssh/environment
- USE_SSH_AGENT=true;
- USE_GPG_AGENT=true;
- # Start the ssh-agent if it exists
- function _start_ssh_agent {
- echo "Initializing new SSH agent..."
- # spawn ssh-agent
- /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
- echo succeeded
- chmod 600 "${SSH_ENV}"
- . "${SSH_ENV}" > /dev/null
- /usr/bin/ssh-add
- }
- function start-ssh-agent() {
- if $USE_SSH_AGENT && command -v ssh-agent >/dev/null 2>&1; then
- if [ -f "${SSH_ENV}" ]; then
- source "${SSH_ENV}" > /dev/null
- ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || _start_ssh_agent;
- else
- _start_ssh_agent;
- fi
- fi
- }
- function start-gpg-keychain() {
- if ! pgrep -x -i "GPG\ Keychain" > /dev/null; then
- if [ -d "/Applications/GPG Keychain.app" ]; then
- /Applications/GPG\ Keychain.app/Contents/MacOS/GPG\ Keychain & 2>&1;
- disown;
- fi
- fi
- }
- # Start up the gpg agent if it exists
- function start-gpg-agent() {
- if $USE_GPG_AGENT && command -v gpg-agent >/dev/null 2>&1 ; then
- [ -f ~/.gpg-agent-info ] && source ~/.gpg-agent-info
- if [ -S "${GPG_AGENT_INFO%%:*}" ]; then
- export GPG_AGENT_INFO;
- export SSH_AUTH_SOCK;
- export SSH_AGENT_PID;
- else
- echo "Initializing new GPG agent...";
- eval $( gpg-agent --daemon --enable-ssh-support );
- fi
- fi
- }
- function fix-gpg-agent () {
- killall ssh-agent gpg-agent;
- unset GPG_AGENT_INFO SSH_AGENT_PID SSH_AUTH_SOCK;
- start-gpg-agent;
- ssh-add -l;
- start-gpg-keychain;
- }
|