3

Я использую GDM для запуска WME через .xinitrc. Мне нравится потрясающее удобство использования и целостность гномов, и до сих пор большинство программ запуска работают нормально, но я борюсь с ssh-agent. При запуске gnome мой защищенный паролем id_rsa автоматически добавляется в ssh-agent при запуске .. Я пытаюсь добиться того же с моим .xinitrc, запущенным awesome wm.

Мой .xinitrc:

/usr/libexec/at-spi-registryd &
/usr/libexec/gdu-notification-daemon &
gnome-screensaver &
/usr/libexec/vino-server --sm-disable &
/usr/bin/gnome-keyring-daemon --start --components=keyring &
/usr/bin/gnome-keyring-daemon --start --components=secrets &
/usr/bin/gnome-keyring-daemon --start --components=ssh &
/usr/bin/gnome-keyring-daemon --start --components=pkcs11 &
/usr/bin/gnome-keyring-daemon --start --components=gpg &
/usr/libexec/polkit-gnome-authentication-agent-1 &
/usr/libexec/evolution/2.32/evolution-alarm-notify &
/usr/libexec/gnome-settings-daemon &
gnome-power-manager &
gsettings-data-convert &
gnome-volume-control-applet &
nm-applet --sm-disable &
exec /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session /usr/bin/ssh-agent -- awesome

Как Гном справляется с этим?

2 ответа2

6

GNOME хранит ваши ключевые пароли SSH в кольце ключей GNOME, которое (брелок для login в систему ) разблокируется паролем входа в систему с помощью pam_gnome_keyring:

#%PAM-1.0
auth           ...
auth           ...
auth           optional        pam_gnome_keyring.so

session        ...
session        ...
session        optional        pam_gnome_keyring.so auto_start

Однако ваша текущая настройка не будет работать с этим, так как вы ssh-agent на последнем шаге, перезаписывая все переменные окружения, которые могли быть установлены gnome-keyring . Удалите ssh-agent и попробуйте добавить это после всех процессов демона keyring:

eval $(gnome-keyring-daemon --start)

Помните также, что gnome-keyring-daemon публикует несколько переменных среды через DBus, которые затем считываются gnome-shell , чего не делает Awesome. Это и вы запускаете сессионную шину DBus после запуска всех демонов, поэтому они могут вообще не подключиться к вашему сеансу.

Еще одна вещь: Многие демоны должны быть запущены внутри ConsoleKit сессии - агента аутентификации PolicyKit, например. Вам повезет больше, если вы замените весь скрипт ~/.xinitrc :

exec ck-launch-session dbus-launch --exit-with-session ~/.xinitrc-session

затем используйте ~/.xinitrc-session для запуска остальной части GNOME.


Вы можете пойти более легким путем. Используйте стандартный ck-launch-session dbus-launch --exit-with-session gnome-session и просто скажите менеджеру сессий GNOME, чтобы он запускал Awesome в качестве оконного менеджера.Следуйте официальным инструкциям.

Сокращенная форма для GNOME 2:

mkdir -p ~/.local/share/applications/
cp /usr/share/applications/awesome.desktop ~/.local/share/applications/
cat >> ~/.local/share/applications/awesome.desktop
X-GNOME-WMName=Awesome
X-GNOME-WMSettingsModule=awesome
X-GNOME-Autostart-Phase=WindowManager;Panel
X-GNOME-Provides=windowmanager;panel
X-GNOME-Autostart-Notify=true
[Ctrl-D]
gconftool-2 --set /desktop/gnome/session/required_components/windowmanager --type string awesome
2

Есть ли какая-то особая причина не использовать pam_ssh? Я нахожу это довольно удобным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .