すべての端末でssh-agentを操作する方法は?

すべての端末でssh-agentを操作する方法は?

ssh-copy-idを使用して、一部のサーバーの自動(パスワードなし)SSHログインを設定しました。ssh-agent実行している端末でのみ実行できます。ssh-add私のすべての端末でこの機能を動作させるにはどうすればよいですか?

もちろん、私はパスワードのないSSHキーが好きではありません。

ベストアンサー1

グラフィックセッションにログインしている場合は、ssh-agentセッションの開始時に開始するようにスケジュールしてください。一部のディストリビューションはすでにこれを行います。ない場合は、ssh-agentセッション開始スクリプトまたはウィンドウマネージャで実行するようにスケジュールしてください。これを行う方法は、デスクトップ環境とウィンドウマネージャによって異なります。たとえば、ウィンドウマネージャを手動で起動する場合は、呼び出しをmy_favorite_wmbyに置き換えることができます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

おすすめ記事