Так как я недавно обновился до Ubuntu 17.10, мои личные ключи - те, которые я использую, например, для доступа к своему серверу через ssh - больше не разблокируются программно после входа в систему.
Я понимаю, что обычно seahorse client
должен позаботиться об этом, спрашивая вас, сохранять ли пароль ключа при вводе их в первый раз.
Мое первое предположение состояло в том, что seahorse-daemon
по какой-то причине не работал, но это:
user@Zeus:~$ ps aux | grep seahorse
user 19170 0.0 0.1 432636 26564 ? Ss 00:07 0:00 seahorse-daemon
Мое второе предположение было, что по какой-то причине я должен удалить все сохраненные связанные пароли в морском коньке в разделе »Пароли-> логин«:
Я надеялся заставить клиента снова спросить меня, а затем сохранить их снова. Но это тоже не помогло. Клиент не появляется, чтобы спросить меня ...
Тогда я нашел этот вопрос, который мог быть связан, но не помог мне: Разблокировать все закрытые ключи в Ubuntu, вводя пароль только один раз при входе в систему
Как управление другими пароли работают как положено (например, пароли для nautilus, Chromium, Nextcloud и т. д.) Я предполагаю, что проблема связана с ssh-agent
...
Кто-нибудь может намекнуть мне в правильных направлениях, как решить эту проблему? Что-то изменилось в том, как GNOME обрабатывает пароли? Может быть, какая-то новая необычная программа не была установлена в процессе обновления?
ОБНОВЛЕНИЕ Когда я снова добавляю закрытый ключ к агенту аутентификации с помощью:
ssh-add ~/.ssh/id_rsa
и пытаюсь войти в систему, мне будет предложено разблокировать только ключ один раз, после этого ключ разблокируется программно. Но это работает только до следующей перезагрузки. После нового начала я должен снова добавить ключ ...
Да, ssh-agent - это ответ. Для сохранения парольной фразы достаточно:
ssh-add ~/.ssh/id_rsa
Затем ввести пароль и войти обратно.
Добавление агента ключа SSH (связка ключей GNOME: агент SSH) в запускаемые приложения решил проблему для меня:
Первый вариант
Запустить ssh-агент:
ssh-agent
Добавить ssh-ключ:
ssh-add ~/.ssh/id_rsa
Чтобы он сохранялся после перезагрузки, автозапуск ssh-agent, добавьте следующую строку в свой .bash_profile:
if [ -z "$SSH_AUTH_SOCK" ] ; then
eval `ssh-agent -s`
ssh-add
fi
Второй вариант
Добавьте это в свой .bashrc или .zshrc:
if [ ! -S ~/.ssh/ssh_auth_sock ]; then
eval `ssh-agent`
ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l > /dev/null || ssh-add
Это должно запрашивать пароль только при первом входе в систему после каждой перезагрузки. Он будет повторно использовать один и тот же ssh-агент, пока он продолжает работать.