Некоторое время назад на StackOverflow я задал этот вопрос о ssh-agent и crontab . У меня сейчас похожий вопрос о ssh-agent и screen в системах linux.
Итак, на моем Mac ssh-agent запускается при запуске системы, поэтому он всегда доступен для меня. Я думаю, что это было бы верно под моим Linux (Redhat El5 / Fedora), если бы я использовал X-Windows. Тем не менее, это удаленный сервер, и я всегда захожу через ssh.
Я хотел бы, чтобы ssh-ключи были настроены правильно, чтобы мне не приходилось вводить свой пароль несколько раз во время svn-обновления или фиксации. Я счастлив вводить парольную фразу один раз за сеанс, и я не рекомендую нашей команде использовать ssh-ключи без пароля.
В какой-то короткий момент мне показалось, что в моем .bash_profile было выполнено «eval` ssh-agent -s` », в сочетании с командой убить ssh-agent, когда я вышел из системы. Тем не менее, мы интенсивно используем экран для управления длительными интерактивными программами и средами разработки. Если вы запускаете и останавливаете ssh-agent, как я только что описал, то он убивается, когда вы выходите из терминала, а подсессии экрана, которые раньше ссылались на этот экземпляр ssh-agent, прекращаются.
Итак ... как я могу быть пользователем консоли, который использует экран, который использует пароль со своими ssh-ключами, которому не нужно постоянно вводить фразу-пароль?
источник
/etc/conf.d/local
(или ваш эквивалент) для каждого пользователя, который использует агент, чтобы запустить отдельныйssh-agent
процесс для каждого пользователя. Если, как вы говорите, у вас нет огромного количества пользователей, это не так уж плохо. Вы подняли хороший вопрос (который я забыл рассмотреть) о терминальных сеансах, подключаемых к агенту; см. мое изменение к ответу.Проверьте брелок . Это делает все вышеперечисленное. Посмотрите особенно на
--clear
и--timeout
варианты.источник
Лучше всего использовать пересылку по ssh-агенту (
-A
опция). Это позволяет человеку, использующему ssh, использовать ключи от ssh-agent, работающего на машине, с которой они приходят, предположительно на рабочей станции, на которой они фактически сидят.источник
чтобы продолжить переадресацию агента ssh, вы обнаружите, что по умолчанию перенаправленные учетные данные ssh не будут доступны вашему экранному сеансу после выхода, повторного входа и повторного подключения к сеансу.
Однако вы можете обойти это, установив на экран переменную среды SSH_AUTH_SOCK, которая будет известна, и обновив это известное местоположение до текущего сокета аутентификации.
Я использую эту функцию оболочки для повторного входа в экран и исправления ssh auth sock:
и у меня есть это в моем .screenrc:
Надеюсь это поможет.
источник
Если я вас правильно понял, вам просто нужен сеанс экрана, который вы иногда отсоединяете и снова подключаете, но больше никогда не хотите вводить пароли для ssh-agent (пароль вашего личного ключа).
Я думаю, что самый простой способ - запустить экран, чем запустить ssh-agent с помощью вспомогательной оболочки, а затем остаться в этой вспомогательной оболочке. Т.е.
источник