我正在尝试与 Bamboo 建立持续集成。我想配置一个任务,将 ssh 放入我们的舞台服务器,将 cd 放入正确的目录并执行 git pull。
我已经能够设置 ssh 任务,但是执行 git pull 很困难。
我采取的步骤:
配置 ssh 任务以 cd 进入项目目录并运行以下脚本:
#!/bin/bash echo "pulling from master" git pull origin master
Permission denied (publickey).
脚本运行,但在尝试拉取后日志显示错误。我将远程 URL 从 HTTPS 切换到 ssh 并创建了一个公钥。现在,当我尝试手动拉取时,它会询问密钥的密码。
用于
ssh-agent
缓存会话的密码。意识到这个缓存只会持续到我关闭会话,所以我按照本文中的步骤 ( https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git ) 启动 ssh-agent每个新会话。即我将此脚本添加到我的
.bashrc
:SSH_ENV=$HOME/.ssh/environment # start the ssh-agent function start_agent { echo "Initializing new SSH agent..." # spawn 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 } 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
并将其添加到 .ssh/config 文件中:
Host myStashInstance.org
IdentityFile ~/.ssh/id_rsa
- 文章说应该提示我输入密码,然后代理会启动,但这并没有发生。我仍然需要手动启动 ssh-agent。
我想知道在我开始新会话时启动 ssh-agent 的下一步是什么,以便我可以继续弄清楚如何完成配置此作业。(如果我完全走错了路,也愿意接受其他途径的建议。)