Не удается сохранить кодовую фразу в том же сеансе с помощью eval $ (ssh-agent) & amp; & amp; & amp; & amp; SSH-добавить

Для меня достаточно запустить baobab ~, чтобы правильно проверить домашнюю папку (установленный том .efryptfs).

1
задан 11 February 2017 в 15:28

1 ответ

Вам нужно определить, работает ли ssh-agent с помощью .bashrc. Если он не запущен, запустите его.

Вот фрагмент моего .bashrc, который устанавливает переменные среды для существующего сеанса.

#
# setup ssh-agent
#
#start running ssh-agent if it is not already.
if [ ! 'root' = "${USER}" ]; then
  if ! pgrep ssh-agent &> /dev/null && ! uname -rms | grep Darwin &> /dev/null; then
    eval "$(ssh-agent -t 3600)" > /dev/null
  fi
  if ! uname -rms | grep Darwin &> /dev/null; then
    if [ -z "${SSH_AUTH_SOCK}" -o -z "${SSH_AGENT_PID}" ]; then
        #first time failed so try again.
        SSH_AUTH_SOCK="$(ls -l /tmp/ssh-*/agent.* 2> /dev/null | grep "${USER}" | awk '{print $9}' | tail -n1)"
        SSH_AGENT_PID="$(echo ${SSH_AUTH_SOCK} | cut -d. -f2)"
    fi
    if [ -z "${SSH_AUTH_SOCK}" -o -z "${SSH_AGENT_PID}" ]; then
      SSH_AUTH_SOCK="$(lsof -p "$(pgrep ssh-agent | tr '\n' ',')" | grep "${USER}" | grep -e "ssh-[^/]*/agent\.[0-9]\+$" | tr ' ' '\n' | tail -n1)"
      SSH_AGENT_PID="$(echo ${SSH_AUTH_SOCK} | cut -d. -f2)"
    fi
  fi
  [ -n "${SSH_AUTH_SOCK}" ] && export SSH_AUTH_SOCK
  [ -n "${SSH_AGENT_PID}" ] && export SSH_AGENT_PID
fi

Я использую тот же фрагмент для нескольких платформ, а не только для Mac или Linux на x86. Этот фрагмент можно улучшить, но на данный момент он работает для меня надежно.

2
ответ дан 23 May 2018 в 01:51

Другие вопросы по тегам:

Похожие вопросы: