ssh-agent с паролями, не порождая слишком много процессов - PullRequest
6 голосов
/ 19 сентября 2008

Я использую ssh-agent с ключами, защищенными паролем, в Linux. Каждый раз, когда я вхожу в определенную машину, я делаю это:

eval `ssh-agent` && ssh-add

Это работает достаточно хорошо, но каждый раз, когда я вхожу и делаю это, я создаю другой ssh-agent. Время от времени я буду делать killall ssh-agent, чтобы пожинать их. Есть ли простой способ повторно использовать один и тот же процесс ssh-agent в разных сеансах?

Ответы [ 4 ]

5 голосов
/ 19 сентября 2008

взгляните на брелок. Было написано б людей в подобной ситуации с собой. брелок

3 голосов
/ 19 сентября 2008

Насколько вы контролируете эту машину? Один из ответов - запустить ssh-agent как процесс-демон. Другие варианты описаны на этой веб-странице , в основном тестирование на наличие агента, а затем запуск его, если это не так.

Воспроизвести одну из идей здесь:

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new 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;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn’t work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi 
1 голос
/ 20 сентября 2008

Вы можете сделать:

ssh-agent $SHELL

Это приведет к выходу ssh-agent при выходе из оболочки. Они по-прежнему не будут передаваться между сеансами, но по крайней мере они исчезнут, когда вы это сделаете.

0 голосов
/ 20 сентября 2008

В зависимости от того, какую оболочку вы используете, вы можете установить различные профили для оболочек входа в систему и просто обычных новых оболочек. В общем, вы хотите запустить ssh-agent для оболочек входа в систему, но не для каждой подоболочки. В bash эти файлы будут, например, .bashrc и .bash_login.

Большинство настольных Linux в настоящее время используют ssh-agent для вас. Вы просто добавляете свой ключ с помощью ssh-add, а затем перенаправляете ключи на удаленные ssh-сессии с помощью команды

ssh -A
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...