6

Linux で、パスワードで保護されたキーで ssh-agent を使用しています。特定のマシンにログインするたびに、これを行います。

eval `ssh-agent` && ssh-add

これは十分に機能しますが、ログインしてこれを行うたびに、別の ssh-agent を作成します。killall ssh-agent時々、それらを刈り取るために を行います。異なるセッション間で同じ ssh-agent プロセスを再利用する簡単な方法はありますか?

4

4 に答える 4

5

キーチェーンをご覧ください。自分と似た境遇の人に書いてもらいました。 キーホルダー

于 2008-09-19T14:47:18.153 に答える
3

このマシンをどの程度制御できますか? 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 
于 2008-09-19T14:46:06.720 に答える
2

できるよ:

ssh-agent $SHELL

これにより、シェルが終了したときにssh-agentが終了します。それらはまだセッション間で共有されませんが、少なくとも共有すると消えます。

于 2008-09-20T01:40:55.133 に答える
0

使用するシェルに応じて、ログイン シェルと通常の新しいシェルに異なるプロファイルを設定できます。一般に、すべてのサブシェルではなく、ログイン シェルに対して ssh-agent を開始します。たとえば、bash では、これらのファイルは.bashrcandになります。.bash_login

最近のほとんどのデスクトップ Linux は、ssh-agent を実行します。ssh-add を使用してキーを追加し、次のコマンドを実行してキーをリモート ssh セッションに転送するだけです。

ssh-A
于 2008-09-20T01:37:46.217 に答える