Как запустить агент GnuPG SSH для gvfs?

Спасибо за ответ. Мне пришлось сделать один обходной путь, создав собственный репозиторий Centos yum, который предоставил пакеты и вместо этого выдал команду yum downgrade в моем Dockerfile.

CentOS -Старый.репозиторий

 [Centos-old]
    name=CentOS-7.4.1708 - Base
    baseurl=http://vault.centos.org/7.4.1708/os/x86_64/
    gpgcheck=0
    #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-old

А также использование этого репозитория и отправка его в образ докера перед выполнением понижения

FROM centos/systemd
ENV container docker
COPY CentOS-Old.repo /etc/yum.repos.d/
RUN yum -y downgrade openldap-2.4.44-5.el7.x86_64 
RUN yum -y install openldap-servers-2.4.44-5.el7.x86_64 openldap-clients-2.4.44-5.el7.x86_64
CMD ["/usr/sbin/init"]
0
28.10.2020, 18:33
1 ответ

TLDR:

sudo chmod +x /lib/systemd/user-environment-generators/90gpg-agent && reboot

Лонгрид:

При открытии удаленных местоположений с помощью Nautilus демон gvfs -заботится о подключение к удаленной системе и монтирование ее файловой -системы в фоновом режиме.

gvfs управляется systemd. И systemd, кажется, управляет своей собственной средой независимо от того, что вы введете в ~/.profileили ~/.bashrc.

Как-то позже в сеансе, т.е. когда окно терминала bash было открыто, настройка среды ~/.profileи ~/.bashrcможет быть доступна для только что запущенные процессы, но не с самого начала. я не совсем уверен как работает эта часть,но результирующие факты легко наблюдать:

Если вы посмотрите на окружение gvfs -daemon.service сразу после входа в систему, вы см. следующее:

# Get the PID of the running gvfsd
$ FIXME=$(systemctl --user show --property="MainPID" gvfs-daemon.service | grep -o '[0-9]*')

# Show the environment of the running gvfsd
$ tr "\0" "\n" < "/proc/${FIXME}/environ"

Вы увидите, что окружение намного меньше по сравнению с вашим bash. сеанс с помощью команды env:Что еще более важно, нет SSH _AUTH _Переменная SOCK в среде процесса gvfsd.

Если сейчас перезапустить службу gvfs с терминала bash и посмотреть на снова окружающая среда:

$ systemctl --user restart gvfs-daemon.service
$ FIXME=$(systemctl --user show --property="MainPID" gvfs-daemon.service | grep -o '[0-9]*')
$ tr "\0" "\n" < "/proc/${FIXME}/environ"

Теперь присутствует переменная SSH _AUTH _SOCK, клиент SFTP, вызванный Демон gvfs -будет использовать сокет агента gpg --в качестве агента SSH и удаленные папки в Наутилус будет работать как положено.

Сопровождающие пакета Debian GnuPG знают об этом. задачу и сделал Сценарий генератора пользовательской среды systemd доступен по адресу

/lib/systemd/user-environment-generators/90gpg-agent.

Однако исполняемый бит этого скрипта не установлен, и поэтому, вероятно, никогда не будет начал.

После создания исполняемого файла и перезагрузки системы SFTP-соединения открываются как ожидаемо с самого начала.

$ sudo chmod +x /lib/systemd/user-environment-generators/90gpg-agent
$ reboot

Примечание. :Во время исследования я несколько раз вводился в заблуждение, потому что среда продолжает меняться во время работы над системой. Чтобы быть уверенным, всегда делайте полная перезагрузка системы. Просто выйдите из сеанса Gnome и снова войдите в него, по-видимому, не сбрасывает все в то же состояние, что и сразу после системы Начало.

1
18.03.2021, 22:54

Теги

Похожие вопросы