Я настроил установку пароля меньше для ssh, который использует аутентификацию с открытым ключом для соединения с желаемым удаленным сервером, все работало вполне хорошо.
Я использую пароль для разблокирования закрытого ключа, с помощью этого решения — проблема - это, спрашивает пароль каждый раз, я запускаю свою систему.
Я нашел, что это было неприятно, я хочу ввести его только раз и навсегда так в следующий раз, когда я загружаю сессию, я не должен буду вводить его снова, есть ли что-то как кэшируемый ключ, который держит мой пароль, и работы через сессию (также переживают перезагрузку)?
Было бы возможно достигнуть всего этого при сохранении моего ssh пароля неповрежденным?
Выполненный ssh-keygen -p
. Это позволит Вам удалять набор пароля на ключе. Если никакой пароль не установлен, это хранится в открытом тексте, и можно использовать его, не разблокировав его:
$ ssh-keygen -p
Enter file in which the key is (/home/user/.ssh/id_rsa):
Enter old passphrase:
Key has comment ''
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
Просто нажмите Enter при запросе пароль не установить пароль. После этого можно использовать ключ свободно.
Вы хотите использовать keychain
.
keychain
программа управляет экземпляром ключевой программы ssh-agent
кэша. Когда ssh-agent
запускается, две переменные среды создаются, чтобы быть eval'd. Обычно, когда оболочка закрывается, где ssh-agent
был запущен, те переменные среды потеряны. keychain
программа отслеживает те переменные через логины и предоставляет сценарии оболочки в ~\.keychain
каталог.
существует несколько способов работать keychain
, один метод вручную из командной строки. Каждый раз Вы запускаете оболочку, используете:
eval `keychain --eval`
Это найдет ssh-agent
, если это будет работать, и запустите его, если это не. Так или иначе использование оценки на [1 113] установит необходимые переменные среды, где можно добавить использование ключей:
ssh-add <private-keyfile>
, Если private-keyfile
имеет пароль, Вам предложат ввести тот пароль во время выполнения [1 115], но целых ssh-agent
работает, который будет прошлым разом, когда необходимо ввести пароль для закрытого ключа.
, поскольку оценка [1 117] наборы SSH_AUTH_SOCK
переменная среды, любое выполнение [1 119] будет использовать ssh-agent
для выполнения аутентификации.
Другое предложение состоит в том, чтобы добавить keychain
выполнение к Вашему .bashrc
файл, как предложено в [1 126] этот ответ StackExchange .
Для завершения keychain
просто вводят команду:
keychain --stop mine
или если Вы хотите снизить все экземпляры [1 124], введите команду:
keychain --stop all
Просто примечание, с помощью сервисов такой в качестве [1 125] побеждают безопасность файлов секретных ключей пароля путем хранения тех аутентифицируемых ключей в памяти. Это не безопасно, особенно с атаками по сторонним каналам памяти. Если Вы не интересуетесь ключевой безопасностью, простое решение состоит в том, чтобы удалить пароль на закрытом ключе, как предложено @vidarlo.
Простой ответ является №
, Который побеждает цель (т.е. защита), если это поддержано через перезагрузки.
можно однако выдержать его через сессии входа в систему и даже через несколько терминалов.
, Если Вы хотите выдержать через сессии входа в систему, но в порядке для ввода пароля однажды на терминал, затем добавьте eval $(ssh-add)
к к .bash_profile
, Если Вы хотите сделать это однажды на системную перезагрузку, связку ключей установки, изменить Ваш ~/.ssh/config
файл, чтобы добавить ключи к связке ключей (AddKeysToAgent yes
) и сделать вышеупомянутый шаг также.