Единственный раз, когда Mac OS X Terminal запрашивает пароль для моего файла идентификации, это когда я перезагружаюсь. Я довольно параноик, и это кажется небезопасным; Как я могу убедиться, что он запрашивает пароль каждый раз, когда я пытаюсь использовать ключ?
4 ответа
Ssh-agent хранит их в течение всего времени сеанса (см. Параметры ssh-agent через 'man ssh-agent'). Вы можете сократить время жизни ключа, добавленного к агенту, с помощью 'ssh-agent -t 1', но ss-agent запускается при запуске при запуске системы. Вот ветка, в которой описывается, как бороться с проблемой: яблочная дискуссия .
Я бы добавил следующий параметр конфигурации в .ssh/config
:
Host *
IdentitiesOnly yes
отключить использование ssh-agent.
Вы можете установить брелок по умолчанию (вход в систему) для блокировки в спящем режиме или по истечении времени ожидания, которое также, по-видимому, сбрасывает агент SSH.
Откройте Keychain Access и щелкните правой кнопкой мыши связку ключей входа в систему, чтобы изменить настройки (я думаю, вы захотите более короткий тайм-аут, чем я):
Или, если вы предпочитаете командную строку:
security set-keychain-settings -lu -t 1 # for a 1 second timeout
Я использовал изменение org.openbsd.ssh-agent.plist, которое вы упомянули в комментариях, но в El Cap вам нужно отключить защиту целостности системы, чтобы сделать это, и я не был в восторге. Мое решение требует дополнительной подсказки для разблокировки, но это самый чистый вариант, который я нашел до сих пор.
Если он запрашивает вас только при входе в систему, он хранится в одном из двух мест: в ssh-agent через ssh-add или через цепочку ключей OSx.
Лично я бы сначала проверил брелок, потому что мне кажется, что это, вероятно, более безопасная ставка на GUI-ориентированную машину.