Linux で、パスワードで保護されたキーで ssh-agent を使用しています。特定のマシンにログインするたびに、これを行います。
eval `ssh-agent` && ssh-add
これは十分に機能しますが、ログインしてこれを行うたびに、別の ssh-agent を作成します。killall ssh-agent
時々、それらを刈り取るために を行います。異なるセッション間で同じ ssh-agent プロセスを再利用する簡単な方法はありますか?
キーチェーンをご覧ください。自分と似た境遇の人に書いてもらいました。 キーホルダー
このマシンをどの程度制御できますか? 1 つの答えは、デーモン プロセスとして ssh-agent を実行することです。その他のオプションについては、この Web ページで説明されています。基本的には、エージェントが存在するかどうかをテストし、存在しない場合は実行します。
ここでアイデアの1つを再現するには:
SSH_ENV="$HOME/.ssh/environment"
function start_agent {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn’t work under cywgin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
できるよ:
ssh-agent $SHELL
これにより、シェルが終了したときにssh-agentが終了します。それらはまだセッション間で共有されませんが、少なくとも共有すると消えます。
使用するシェルに応じて、ログイン シェルと通常の新しいシェルに異なるプロファイルを設定できます。一般に、すべてのサブシェルではなく、ログイン シェルに対して ssh-agent を開始します。たとえば、bash では、これらのファイルは.bashrc
andになります。.bash_login
最近のほとんどのデスクトップ Linux は、ssh-agent を実行します。ssh-add を使用してキーを追加し、次のコマンドを実行してキーをリモート ssh セッションに転送するだけです。
ssh-A