ssh-copy-idを使用して、一部のサーバーの自動(パスワードなし)SSHログインを設定しました。ssh-agent
実行している端末でのみ実行できます。ssh-add
私のすべての端末でこの機能を動作させるにはどうすればよいですか?
もちろん、私はパスワードのないSSHキーが好きではありません。
ベストアンサー1
グラフィックセッションにログインしている場合は、ssh-agent
セッションの開始時に開始するようにスケジュールしてください。一部のディストリビューションはすでにこれを行います。ない場合は、ssh-agent
セッション開始スクリプトまたはウィンドウマネージャで実行するようにスケジュールしてください。これを行う方法は、デスクトップ環境とウィンドウマネージャによって異なります。たとえば、ウィンドウマネージャを手動で起動する場合は、呼び出しをmy_favorite_wm
byに置き換えることができます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