【发布时间】:2015-04-02 23:57:16
【问题描述】:
我为一家公司工作,该公司出于某种原因使用带有 WAMP 的 Windows 2003 服务器作为其实时产品(请不要问我为什么)。目前,我们必须将更新本地推送到 github,手动使用远程桌面连接连接到此生产服务器并拉取。
我们想自动化这个过程。
我尝试github webhooks 没有成功 -> 找不到为系统帐户 (NT AUTHORITY/SYSTEM) 创建 SSH 密钥的方法,这是 apache 在该服务器解决方案上使用的密钥。该项目目前是通过 HTTPS 克隆的,所以我们也可以全局尝试saving credentials,这样 git 在尝试通过 PHP 拉取时不会提示本地系统帐户输入密码,但这似乎是安全方面最糟糕的解决方案。
有什么想法吗?
-- 更新--
我们决定现在不担心安全隐患。然后我按照所有步骤为新的只读用户保存凭据,但没有成功。我可以在以下位置看到具有正确用户/密码/url 的 .git-credentials 文件:
C:\WINDOWS\system32\config\systemprofile
所有命令都可以工作(通过浏览器),除了 pull、fetch 等。
还有什么想法吗?
-- 更新 2--
我现在已将 wampapache 服务更改为以管理员帐户运行,该服务还将凭据存储在其“根”文件夹 (~) 中。这是我可以通过 cmd 推/拉而无需用户/通过提示的同一个帐户。但是当我通过浏览器尝试时......没有运气。
我现在完全没有想法了。
【问题讨论】:
-
好吧,我的第一个建议是找一份新工作。我(稍微)更严肃的第二个建议是,我不确定是否值得担心在本地保存凭据的安全隐患。如果您创建的用户只有对 repo 的读取权限,那么如果您的服务器遭到入侵,最糟糕的情况就是他们将可以访问您的源代码,而此时他们仍然拥有这些权限。
-
感谢您的意见。关于安全性,我们得出了相同的结论。我已按照所有步骤为新的只读用户保存凭据。如果我登录到服务器并手动拉,它就可以工作:没有用户/密码提示。但是,如果我尝试访问用于执行 git pull 的 URL,它就不起作用。所有其他不涉及连接到 github 服务器的命令都可以工作(git status 等),因此当它是本地系统用户时,它可能仍在检查凭据。还有什么想法吗?
标签: php git github windows-server-2003