ssh-агент с паролями без создания слишком большого количества процессов

StackOverflow https://stackoverflow.com/questions/102382

  •  01-07-2019
  •  | 
  •  

Вопрос

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

eval `ssh-agent` && ssh-add

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

Это было полезно?

Решение

взгляните на брелок.Это писали люди, оказавшиеся в похожей на вас ситуации.Брелок

Другие советы

Насколько вы контролируете эту машину?Одним из ответов может быть запуск 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 

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

ssh-agent $SHELL

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

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

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

ssh -A
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top