ssh-agent の起動時に SSH_AGENT_PID または SSH_AUTH_SOCK を env ファイルに保存し、それを ssh スクリプトでソースする必要があります。
これは、ずっと前にウェブから取得した、私が使用したスクリプトです。
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
ssh-add id_rsa
}
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV} > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
キーがパスフェーズで保護されている場合は手動で実行し、 $HOME/.ssh/environment のように保存します
SSH_AUTH_SOCK=/tmp/ssh-KldGwK6643/agent.6643; export SSH_AUTH_SOCK;
SSH_AGENT_PID=6644; export SSH_AGENT_PID;
あなたの crontab で。$HOME/.ssh/environment && ssh -A blabla
サーバーが再起動した場合は、start_agent スクリプトを手動で再度実行する必要があります