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
答え2
次のプログラムが必要な場合もあります。キーホルダー、この目的のために正確に設計されています。マニュアルページから:
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.
答え3
デスクトップ環境やウィンドウマネージャに適用してみてください。過去にcustomを使用してこの操作を手動で実行したとき、次の行を~/.Xclients
最後の行として使用しました。
ssh-agent mywindowmanger
独自の設定オプションを持ついくつかのDEがあるかもしれませんが、私の考えでは(例えば)KDEにはありません。現在、私のコードは/etc/X11/xinit/xinitrc-common
DE / WMに関係なくすべてのユーザーに対して有効になっているため、コードで実行されているようです(おそらくfedoraによって実行されます)。親プロセスコマンドはですが、ファイル$HOME/.Xclients
は参照されませんssh-agent
(/etc/X11/xinit/xinitrc-common
)。
存在しない場合は、~/.Xclients
この行のみを使用して作成できますが、DE/WM を起動するにはコマンドを知る必要があります。