回答:
グラフィカルセッションにログインしている場合はssh-agent
、セッションの起動時に起動するように手配します。いくつかのディストリビューションはすでにあなたのためにそれを行います。そうでない場合はssh-agent
、セッションスタートアップスクリプトまたはウィンドウマネージャーから実行するように手配します。その方法は、デスクトップ環境とウィンドウマネージャーによって異なります。手動でウィンドウマネージャを起動した場合、単純に呼び出しを置き換えるmy_favorite_wm
ことによってssh-agent my_favorite_wm
。
またはssh-agent
から開始しないでください。これらのファイルは、新しいインタラクティブシェルごとに実行されるためです。開始する場所は、またはなどのセッションスタートアップファイルです。.bashrc
.zshrc
ssh-agent
.profile
.xsession
ログインした場所に関係なく、すべてのプロセスで同じSSHエージェントを使用する場合は、ランダムな名前のソケットを使用する代わりに、常に同じソケット名を使用するようにできます。たとえば、これを次のように配置できます~/.profile
。
export SSH_AUTH_SOCK=~/.ssh/ssh-agent.$HOSTNAME.sock
ssh-add -l 2>/dev/null >/dev/null
if [ $? -ge 2 ]; then
ssh-agent -a "$SSH_AUTH_SOCK" >/dev/null
fi
おそらく、この正確な目的のために設計されたKeychainなどのプログラムが必要でしょう。manページから:
DESCRIPTION
keychain is a manager for ssh-agent, typically run from ~/.bash_profile.
It allows your shells and cron jobs to share a single ssh-agent process.
デスクトップ環境またはウィンドウマネージャーに適用します。過去にカスタム~/.Xclients
でこれを手動で行ったとき、私はこれを最後の行として使用しました:
ssh-agent mywindowmanger
(たとえば)KDEにはないように見えますが、これには独自のセットアップオプションがあるDEがいくつかあるかもしれません。現在、鉱山は/etc/X11/xinit/xinitrc-common
DE / WMに関係なくすべてのユーザーに対してアクティブであり、親プロセスコマンドは$HOME/.Xclients
であるため、(おそらくfedoraによって行われた)からのコードを介して実行されたようですが、そのファイルは参照しませんssh-agent
(一方/etc/X11/xinit/xinitrc-common
)。
がない場合は、~/.Xclients
その1行だけで作成できますが、DE / WMを起動するコマンドを知っている必要があります。
$? -ge 2
に、ssh-agentにキーがなく、ssh-agentがすでに実行されている場合に終了コード1がチェックされるためです。