0

我正在尝试设置 TeamCity 以运行将所有内容推送到我的测试服务器的 shell 脚本。

构建过程如下所示:

  • 从 GitHub 获取所有代码。
  • 运行单元测试并构建
  • 使用 git 推送到测试服务器(亚马逊 ec2)的 Shell 脚本

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

我得到“权限被拒绝(公钥)”。

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

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

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

..弗雷德里克

4

1 回答 1

1

这个问题有两种解决方案:

  • 为您需要启用提交到 git 远程存储库的 TC 用户创建一个 ssh 密钥(这是更好的解决方案)
  • 将您的密钥复制到 TC 用户的~/.ssh/目录(我不建议这样做)

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

于 2011-06-23T08:43:54.213 回答