「SSH経由で公開」JenkinsプラグインでForwardAgentを有効にしようとしています。これにより、jenkinsはリモートサーバーでデプロイメント、rsync、およびsvn + sshチェックアウトを実行できるようになります。しかし、GUIにはこれに対するオプションはありません。
ForwardAgentは/ etc/ssh/ssh_configおよび/var/lib/jenkins/.ssh/configでyesに設定されていますが、Jenkinsジョブがsshを介してログインする場合、リモートセッションのエージェントにキーが読み込まれていません。 (「認証エージェントへの接続を開くことができませんでした。」)
ForwardAgentを強制する方法、またはこれを行うためのより良い方法(Jenkinsスレーブを介して)はありますか?
アイデアをありがとう、大いに感謝します!
この質問には1年以上回答がないようですが、これが問題の解決方法です。
あなたがしたいことは、jenkinsを実行しているユーザーが
エージェントを転送する必要があるユーザーのjenkinsを実行するユーザーの〜/ .bash_profileにこれを入れて、新しいシェルごとに実行されるようにします。
SSH_ENV="$HOME/.ssh/environment"
function start_agent {
echo "Initializing 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 .ssh/id_rsa
cat .ssh/id_rsa.pub
}
#Source SSH Settings
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
if [ `ssh-add -l | grep "The agent has no identities." | wc -l` == 1 ]
then
ssh-add .ssh/id_rsa
cat .ssh/id_rsa.pub
fi
ここのコードの約50%はどこかから取ったものですが、どこにクレジットを与えるか思い出せません。これはかなり移植可能である必要があり、その使用はjenkinsに限定される必要はなく、ssh-agent転送の状況で機能するはずです。