Como adicionar automaticamente uma chave protegida ao ssh-agent na inicialização?

3

Estou usando o gdm para iniciar o awesome wm via .xinitrc. Eu gosto de awesomes usabilidade e integridade gnomos e até agora a maioria dos programas de inicialização funcionam bem, mas eu estou lutando com ssh-agent. Ao iniciar o gnome, meu id_rsa protegido por senha é automaticamente adicionado ao ssh-agent na inicialização .. Eu estou tentando alcançar o mesmo com o meu .xinitrc começou wm incrível.

Meu .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

Como o Gnome resolve isso?

    
por matthias krull 20.07.2011 / 18:53

2 respostas

6

O GNOME armazena suas senhas de chave SSH no Chaveiro do GNOME, que (o chaveiro login ) está desbloqueado com sua senha de login em pam_gnome_keyring :

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

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

No entanto, sua configuração atual não funcionará com isso, pois você está iniciando um ssh-agent na última etapa, sobrescrevendo quaisquer variáveis de ambiente que gnome-keyring possa ter definido. Remova ssh-agent e tente adicionar isso depois de todos os processos de daemon de keyring:

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

Tenha em mente também que gnome-keyring-daemon publica algumas variáveis de ambiente sobre o DBus que são então lidas por gnome-shell , que Awesome não faz. Isso, e você está iniciando o barramento de sessão DBus após todos os daemons terem sido iniciados, então eles podem ser incapazes de se conectar à sua sessão.

Mais uma coisa: muitos dos daemons devem ser iniciados dentro de uma sessão do ConsoleKit - o agente de autenticação PolicyKit, por exemplo. Você terá mais sorte se substituir todo o seu script ~/.xinitrc por:

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

use ~/.xinitrc-session para iniciar o resto do GNOME.

Você pode seguir um caminho mais fácil. Use o padrão ck-launch-session dbus-launch --exit-with-session gnome-session e apenas informe ao gerenciador de sessão do GNOME para iniciar o Awesome como o gerenciador de janelas. Siga as instruções oficiais.

Formulário abreviado para o 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
    
por 20.07.2011 / 20:20
2

Existe algum motivo específico para não usar o pam_ssh ? Eu estou achando bastante conveniente.

    
por 23.08.2011 / 00:00