web-dev-qa-db-ja.com

起動時に保護されたキーをssh-agentに自動的に追加するにはどうすればよいですか?

私はgdmを使用して.xinitrcを介して素晴らしいwmを開始しています。私は素晴らしいユーザビリティとgnomesの整合性が好きで、これまでのところほとんどのスタートアッププログラムは正常に動作しますが、ssh-agentと戦っています。 gnomeを起動すると、パスワードで保護されたid_rsaが起動時にssh-agentに自動的に追加されます。xinitrcが素晴らしい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

Gnomeはこれにどのように取り組んでいますか?

3
matthias krull

GNOMEはSSHキーパスフレーズをGNOMEキーリングに保存します。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を削除し、すべてのキーリングデーモンプロセスの後にこれを追加してみてください。

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

gnome-keyring-daemonがDBusを介していくつかの環境変数を公開し、それらがgnome-ShellAwesomeが読み取らないことにも注意してください。それ、およびあなたはDBusセッションバスを開始していますすべてのデーモンが開始されました接続できない可能性がありますまったくあなたのセッションに。

もう1つ:デーモンの多く起動する必要がありますinside 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
6
user1686

pam_ssh を使用しない特別な理由はありますか?かなり便利だと思います。

2
lkraav