Як автоматично додати захищений ключ до ssh-agent при запуску?


3

Я використовую GDM для запуску Awesome WM через. Xinitrc. Я люблю awesomes юзабіліті і гноми цілісності і до цих пір більшість запуску програм працюють нормально, але я борюся з SSH-агента. При запуску gnome мій захищений паролем id_rsa автоматично додається до SSH-агента при запуску .. я намагаюся досягти те ж саме з моїм.

Мій .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

Як Gnome вирішує це?

Відповіді:


6

GNOME зберігає ключові фрази SSH у GNOME Keyring, який ( 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і спробуйте додати це після всіх процесів демонів ключів:

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

Дуже приємна відповідь. Чи все це працює так само в Gnome 2 & amp; 3?
Benjamin Bannier

@honk: GNOME 3 використовує той самий Keyring (перша частина), але обробляє матеріал сесії (друга частина) дещо інакше. Сторінка Awesome містить інструкції для обох сторінок.
grawity

як виявилося, ssh-agent запускається gdm перед запуском .xinitrc. eval $(gnome-keyring-daemon --start) перед виконанням дивовижної трюк, так що там дійсно були тільки змінні середовища відсутні. Дякуємо за те, що мене підштовхнули в правильному напрямку.
matthias krull

@mugen: Сподіваюся, ви прочитали весь пост, а не тільки перший.
grawity

1
Звичайно, я зробив. Використання дивовижного вікна менеджера вікон Gnome зазвичай працює з інструкціями з дивовижної вікі, але не останнім часом. .xinitrc виконується через /usr/bin/dbus-launch --exit-with-session /usr/bin/ssh-agent -- /etc/X11/gdm/Xsession custom. Таким чином, сеанс DBus і ssh-agent вже запущені. Для consolekit залежних програм, таких як нм-аплет для роботи, я не повинен був робити нічого іншого, ніж запускати себе дивовижно всередині консолі комплект сесії. Змінні середовища були справді відсутніми.
matthias krull

2

Чи існує якась особлива причина, щоб не використовувати pam_ssh ? Я вважаю це досить зручним.


У мене все працює з програмним забезпеченням, яке в будь-якому випадку затягується як залежність. Зрештою відсутній єдиний рядок. Таким чином, не було жодних причин використовувати іншу частину програмного забезпечення. Але, спасибі за те, що я згадав про це, я, безумовно, розгляну його.
matthias krull

1
Останній раз я використовував pam_ssh, він розбився і згорів при спробі імпортувати ключ ECDSA, залишивши мене не в змозі ввійти. (Зрештою, gnome-keyring також не підтримує його, але, принаймні, він виходить з ладу.)
grawity
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.