【问题标题】:Use git SSH in a web application with no write access to filesystem on server在 Web 应用程序中使用 git SSH,对服务器上的文件系统没有写访问权限
【发布时间】:2020-09-23 18:48:57
【问题描述】:

我的网络应用程序在 Google App Engine(标准环境)上运行,其目的是自动修改某个 Github 私有存储库并推送提交。

为了做到这一点,我设置了 SSH 公钥/私钥,将公钥上传到 Github,现在我想将私钥复制到 Web 应用程序的服务器文件系统(本质上是 GAE 的服务器)中,以便它可以克隆首先是 repo 并推送提交。

问题是我无权写入文件系统,因为它在 Google App Engine 上运行,因此我无法将私钥复制到 ~/.ssh 位置。我唯一拥有读/写权限的地方是 tmp 文件夹。

我的第一个方法是查看是否可以将私钥文件复制到 tmp 文件夹中,并在运行 git 命令时使用 env var GIT_SSH_COMMAND 指定该密钥。所以像: GIT_SSH_COMMAND='ssh -i /path/to/tmp/privatekey' git clone git@github.com:username/test-repo.git

但是,在运行应用程序时,git 仍在查看文件夹 ~/.ssh 进行身份验证,我无权在该文件夹上写入。

我对 ssh 和 git 系统的了解非常有限 - 我想知道是否有解决方法,并且应用程序必须在 Google App Engine 上运行。

【问题讨论】:

标签: git google-app-engine github ssh google-cloud-platform


【解决方案1】:

git 仍在查看文件夹 ~/.ssh 进行身份验证,我无权写入。

仔细检查:

GIT_SSH_COMMAND='ssh -vi /path/to/tmp/privatekey' git clone git@github.com:username/test-repo.git

如果你使用ssh -i,Git 应该使用你的私钥,除非as in here,你需要添加-o IdentitiesOnly=yes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多