运行 shell 脚本以使用 ssh 密钥执行 git Push,权限被拒绝

发布于 2024-11-17 01:32:40 字数 431 浏览 3 评论 0原文

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

构建过程如下所示:

  • 从 GitHub 获取所有代码。
  • 运行 UnitTests 并构建
  • Shell 脚本以使用 git 推送到测试服务器(amazon ec2)

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

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

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

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

有人知道从 TC 运行 shell 脚本或在服务器上的 shell 中运行是否有区别?

..弗雷德里克

I'm trying to set up TeamCity to run a shell script that pushes everythin to my test server.

The build process looks like this:

  • Fetch all code from GitHub.
  • Run UnitTests and build
  • Shell script to push to test server (amazon ec2) using git

The problem here is that the shell script isn't allowed to push to the test server, when it's run by TC.

I get "Permission denied (publickey)."

I had the same problem when running the script from a shell but got it working by adding the key to my user (same user that runs TC) with ssh-add.

So I can run the script manually, but would like to get TC to run it.

Anyone know if there's a differance running shell script from TC or in a shell on the server?

..fredrik

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

这样的小城市 2024-11-24 01:32:40

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

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

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

There are two solutions for this problem:

  • create an ssh key for the TC user with which you need to enable the submitting to the git remote repository (this is the better solution)
  • copy your key to the TC user's ~/.ssh/ directory (which I do not suggest)

Update: You can check it by sudoing to the TC user and trying to ssh to the destination (with verbose parameter). If the ssh works then git can connect to the destination.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文