В чем может быть причина того, что закрытые ключи не разблокированы?

13

Так как я недавно обновился до 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

и попытайтесь войти в систему, мне будет предложено разблокировать ключ только один раз, после чего ключ будет разблокирован программно. Но это работает только до следующей перезагрузки. После нового начала я должен добавить ключ снова ...

user5950
источник
Я также внезапно начал просить пароль для разблокировки ключей SSH при использовании Ubuntu 17.10. Принятый ответ мне не помог (работает только до перезагрузки). Вот, видимо, дублирующий вопрос.
Алексей
Seahorse шифрует свои данные, как вы уже догадались, вашим паролем (как правило). Логины без пароля, такие как ssh с ключом, сканер отпечатков пальцев, ... оставьте расшифровку до тех пор, пока она не понадобится, тогда вас спросят. Вы переключали логины ssh с пароля на ключ, когда проблема началась?
ubfan1

Ответы:

7

Да, ssh-agent - это ответ. Чтобы сохранить фразу-пароль, все, что вам нужно сделать, это:

ssh-add ~/.ssh/id_rsa

Затем введите свой пароль и войдите снова.

темное небо
источник
Это помогает только до следующей перезагрузки.
Алексей
@ Алексей Да, я могу подтвердить, что он работает только до следующей перезагрузки. Пока не нашел решения.
user5950
ssh-agent запускается во время сеанса входа в систему и завершается, когда вы завершаете его для собственной безопасности. Если он был постоянным при перезагрузках и пароль вашей учетной записи был скомпрометирован, внезапно злоумышленник получает доступ к вашей личности RSA и, следовательно, к каждой машине, к которой у вас есть доступ. Это было бы неприятной дырой в безопасности. Однако существуют некоторые обходные пути, которые делают вашу учетную запись менее защищенной. См. Unix.stackexchange.com/questions/90853/…
darksky
6

Добавление SSH Key Agent (GNOME Keyring: SSH Agent) в автозагрузку приложений решило проблему для меня:

введите описание изображения здесь

Алексей
источник
3

Первый вариант

Запустите агент 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-agent, пока он работает.

An0n
источник
Спасибо, этот обходной путь выглядит так, как будто он работает, но я странствую, что случилось с тем, что он вообще перестал работать? Раньше он работал в течение последнего десятилетия ... Я хотел бы найти причину, прежде чем идти на обходной путь ...
user5950