Я нахожусь в процессе избавления gnome-keyring
как агент SSH.
Вещи, которые я сделал
- Искал в интернете часами.
- Менял вещи и перезагружал, часто.
- Наконец-то просто
rm
-ed все вещи автозапуска, связанные с SSH.
Последняя вещь волшебным образом сработала, так как там больше нет гнезда для агента:
/run/user/[uid]/keyring/ssh
проблема
Оставшаяся проблема в том , что , несмотря на мое получение прекрасный результат вышеупомянутого, что - то в по- gnome-keyring
прежнему настаивает на установление SSH_AUTH_SOCK
в настоящее несуществующей гнездо выше. Это как зомби, эти вещи никогда не умирают.
Вопрос
Что устанавливает эту переменную и где это делается?
Ловушки
- Я не спрашиваю, как я могу сбросить эту переменную на другое значение.
- Я не спрашиваю, как я могу установить это значение для всей системы или в файле конфигурации оболочки.
- Я не прошу некоторых заклинаний вуду-скриптов init-script, чтобы что-нибудь заморозить, установить, сбросить, сбросить или заменить.
- Я не спрашиваю совета о том, как удалить это: мне все еще нужно это для моих паролей, и это, кажется, самый интегрированный и отточенный менеджер паролей в Gnome.
Я хочу, чтобы эта вещь была отключена, как и должно быть.
Ответы:
Дайте угадаю - вы используете Wayland Я столкнулся с этой проблемой сегодня и решил поделиться решением.
Gnome-Session
SSH_AUTH_SOCK
по какой-то причине имеет жестко запрограммированное переопределение для underland См. Следующий коммит: https://github.com/GNOME/gnome-session/commit/a8896ccad65583885735a04205351f48a42f29aeОбходной путь? Установить переменную окружения , чтобы отключить это поведение:
GSM_SKIP_SSH_AGENT_WORKAROUND=1
. Это приводит к короткому замыканию кода настроек среды.Для людей, которые находят это и пытаются настроить ssh-agent: В моем системном файле systemd для ssh-agent у меня есть следующая строка:
Полный файл выглядит так:
источник
export GSM_SKIP_SSH_AGENT_WORKAROUND=1
мой ~ / .profile и перезагрузив, исправил мою конфигурацию, которая ранее работала на v17.04.(Среда OP неизвестна, поэтому приведенные здесь пути указаны на моей машине с Ubuntu)
Где gnome-keyring устанавливает SSH_AUTH_SOCK?
Чтобы ответить на главный вопрос в заголовке, SSH_AUTH_SOCK устанавливается командой gnome-keyring
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
с помощью следующей команды:Цитирование
initctl
руководства:Откуда SSH_AUTH_SOCK?
Приведенная
initctl
выше команда обусловлена тем, что переменная окружения SSH_AUTH_SOCK уже существует. Итак, это ситуация с курицей и яйцом? Что это устанавливает?SSH_AUTH_SOCK изначально устанавливается исходным ssh-agent, который запускается в самом начале сеанса X. Цитирование руководства:
НО, что делает ssh-компонент gnome-keyring, это заменяет себя существующим ssh-agent. Поэтому он перезаписывает SSH_AUTH_SOCK своим собственным сокетом,
/run/user/.../keyring-.../ssh
чтобы приложения общались с ним, а не с ssh-agent.Как это отключить
Теперь давайте ответим на последнее предложение «Я хочу, чтобы эта штука была отключена». ОП хочет отключить перезапись SSH_AUTH_SOCK компонентом ssh в gnome-keyring. Они хотят вернуть «истинную» переменную SSH_AUTH_SOCK, изначально установленную ssh-agent.
Компонент ssh запускается с помощью того же сценария запуска, упомянутого выше (
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
), но с одним условием: строкаX-GNOME-Autostart-enabled=false
не должна быть найдена ни в одном из этих файлов:/etc/xdg/autostart/gnome-keyring-ssh.desktop
~/.config/autostart/gnome-keyring-ssh.desktop
Поэтому, если вы хотите отключить его, все, что вам нужно сделать, это добавить строку
X-GNOME-Autostart-enabled=false
в один из этих файлов, предпочтительно в папку HOME.источник
/tmp/ssh-XXX/agent.PID
. Ssh-agent все еще находится в вашем списке процессов?https://wiki.archlinux.org/index.php/GNOME/Keyring#Disable_keyring_daemon_components
Слегка отредактировано, удалив явно бесполезное использование
printf
источник
Начиная с Gnome 3.18, сокет, кажется, хранится в
~/.cache/keyring-(some random string)/ssh
По-видимому, это устанавливается gnome-keyring-daemon.
источник