2011-06-23 53 views
0

我想设置TeamCity来运行一个shell脚本,它将每一个东西都推送到我的测试服务器上。运行shell脚本做git推w/ssh键,权限被拒绝

构建过程是这样的:

  • 从GitHub抓取所有代码。
  • 运行单元测试,并建立
  • shell脚本推到使用测试服务器(亚马逊EC2)的git

这里的问题是,shell脚本不允许推到测试服务器,当它的由TC运营。

我得到“Permission denied(publickey)”。

从shell运行脚本时遇到了同样的问题,但通过使用ssh-add将密钥添加到我的用户(运行TC的同一用户)来获得它的工作方式。

所以我可以手动运行脚本,但想要让TC来运行它。

任何人都知道是否存在从TC或服务器上的shell运行shell脚本的差异?

..fredrik

回答

1

有此问题的两个解决方案:

  • 创建与您需要启用提交给远程Git仓库(这是在TC用户的SSH密钥更好的解决方案)
  • 你的密钥复制到TC用户的~/.ssh/目录(我不建议)

ü更新:您可以通过sudoing来检查TC用户并尝试ssh到目的地(使用详细参数)。如果ssh工作,那么git可以连接到目的地。

+0

我试过第二种解决方案,没有工作。我认为第一个解决方案是不可行的,因为Amazon需要所有ssh的.pem密钥文件。而奇怪的部分是,用TC的用户运行脚本在shell中工作得很好,但不是从TC本身运行 – fredrik

+0

检查权限 –