KeePassXC не будет добавлять ключи к работающему агенту SSH при запуске из оболочки gnome

Я работаю на Pop!_OS, поэтому для большинства вещей это, вероятно, аналог Ubuntu. KeepassXC установлен и SSH-агент включен. Существует ключевая фраза, сконфигурированная с ключом, и она работает как шарм, когда я запускаю keepassxc из входа в терминал keepassxc, а затем вижу, что ssh-add -l перечисляет дополнительный ключ. Он также исчезает, когда я закрываю KeePassXC. Идеальный!

Теперь я запускаю keypassXC из оболочки gnome, нажимаю суперключ, ищу keepassXC и вхожу в его хранилище. Глядя на ssh-add -l в терминале: ничего. Ключи не добавлены. ????

Теперь я взглянул на /usr/share/applications/org.keepassxc.KeePassXC.desktop и изменил Terminal=false на true. Нет, к сожалению, не так просто.

Я предполагаю, что это как-то связано с тем, как оболочка gnome запускает KeePassXC, но не могу точно сказать, в чем проблема. Кто-нибудь знает, что это может быть или как решить проблему?


person tilois    schedule 15.11.2019    source источник
comment
Я тоже сталкиваюсь с этим на стоковой Ubuntu 16.04.6 с Unity. Я обнаружил, что ssh-агент должен запускаться оконным менеджером, а не сценариями запуска оболочки, такими как .bashrc. Таким образом, KeepassXC также имеет доступ к переменной окружения SSH_AUTH_SOCK. github.com/keepassxreboot/keepassxc/issues/ Есть фиксация это должно быть выпущено в версии 2.6.0 (запланированный выпуск 3, апрель 2020 г.), что позволит вам переопределить это, но я считаю это неоптимальным решением. github.com/keepassxreboot/keepassxc/pull/3801   -  person frederickjh    schedule 20.03.2020


Ответы (1)


У меня есть ssh-агент KeepassXC, работающий на Ubuntu 16.04.6 с Unity в качестве оконного менеджера.

Проблема в том, что если переменная окружения SSH_AUTH_SOCK не установлена ​​до запуска оконного менеджера, она недоступна для программ, запущенных в оконном менеджере.

В некоторых дистрибутивах есть система для запуска таких программ, как ssh-agent, перед оконным менеджером. В моем дистрибутиве я обнаружил, что /etc/X11/Xsession.d/90x11-common_ssh-agent запускал ssh-agent. Дополнительную информацию см. в этом комментарии к проблеме справки пользователя для KeepassXC.

Однако я также обнаружил, что GNOME Keyring запускает собственный ssh-агент. Мне пришлось отключить это в автозапуске приложений. Я также проверил, что никакие сценарии запуска оболочки (то есть .bashrc .bash_profile .profile .config/fish/config.fish не пытались запустить ssh-агент, так как это заменит тот, который был запущен до оконного менеджера.

Интересное примечание: tty, к которым вы получаете доступ с помощью Ctrl+Alt+F1, Ctrl+AltF2 и т. д., также не имеют установленной переменной окружения SSH_AUTH_SOCK, поскольку они запускаются до оконного менеджера. Если вам это нужно, вы можете добавить код для поиска и установки SSH_AUTH_SOCK. Для рыбной раковины я добавил к ~/.config/fish/config.fish следующее:

# Set SSH_AUTH_SOCK if not set.
if test -z "$SSH_AUTH_SOCK";
  set -gx SSH_AUTH_SOCK (find /tmp/ -path "/tmp/ssh-*/agent.*" 2>/dev/null)
end

Я также обнаружил, что в грядущем выпуске KeepassXC 2.6.0 (намеченном на 3 апреля 2020 г.) будут добавлены настройки, позволяющие переопределять, или настройки значения, используемого для SSH_AUTH_SOCK. Однако, поскольку это меняется каждый раз при запуске ssh-agent, вам нужно будет либо продолжать изменять его, либо настроить ссылку, которая указывала бы на текущий носок.

person frederickjh    schedule 20.03.2020