8

Я недавно установил openssh чтобы я мог использовать его с git .

В процессе настройки (согласно этой статье) я запустил команды:

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<name of key>

Некоторое время спустя, когда я вышел из системы и снова вошел в систему, я попытался использовать git push я получил ошибку. Решением этой ошибки было выполнение тех же команд снова.

Пожалуйста, скажите мне, как я могу

  • Не ssh-agent чтобы мне не приходилось запускать новый
  • Помните ключи, которые я добавил, чтобы мне не приходилось добавлять их каждый раз

Просто для пояснения, я использую zsh, поэтому некоторые функции bash не будут работать в моем .zshrc.

2 ответа2

11

Для чего ssh-agent и как он работает?

ssh-agent надежно хранит ваши расшифрованные ключи в памяти и во время сеанса. Не существует разумного и безопасного способа сохранить расшифрованные ключи при перезагрузке / повторном входе в систему.

Хорошо, как я могу автоматизировать это?

Автоматизировать запуск ssh-agent

добавлять

[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"

в ваш ~/.bashrc или другой скрипт запуска (~/.zshrc).

Автоматизировать добавление ключей

Ключи могут быть автоматически добавлены при первом использовании, когда вы добавляете

AddKeysToAgent yes

к вашему ~/.ssh/config .

Для получения дополнительной информации о ~/.ssh/config смотрите man ssh_config .

3

Добавьте это к ~/.bashrc

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
 ssh-add
fi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .