【问题标题】:Git deploy script fails, but SSH doesn'tGit部署脚本失败,但SSH没有
【发布时间】:2017-12-04 05:46:46
【问题描述】:

我工作的开发人员最近离开了,我的任务是回收我们所有的密钥等。

我们使用 BitBucket 进行源代码控制,并且这个特定的开发人员在我们的一台服务器上运行了一个“拉取脚本”,可以将我们开发分支中的任何内容拉取到站点的测试版本中。在我们删除他的 Atlassian 帐户后,它使用了与它一起使用的部署脚本的 SSH 密钥。此后,我生成了新密钥,将公共密钥上传到我的 Atlassian 帐户,并将私有密钥放在服务器上,到目前为止一切顺利。

但是他的部署脚本返回Permission denied (publickey).

当我尝试$ ssh git@bitbucket.org 时,我得到以下信息:

PTY allocation request failed on channel 0
logged in as ChocolateDinosaur.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
Connection to bitbucket.org closed.

这似乎有效? (如果不是这样,请原谅我的无知)

部署脚本如下:

<?php
$commands = array(
    'echo $PWD',
    'whoami',
    'git pull',
    'git status',
    // 'git submodule sync',
    // 'git submodule update',
    // 'git submodule status',
);

$output = '';
foreach($commands AS $command){
    $tmp = shell_exec($command);
    $output .= "<span style=\"color: #6BE234;\">\$</span> <span style=\"color: #729FCF;\">{$command}\n</span>";
    $output .= htmlentities(trim($tmp)) . "\n";
}
?>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>GIT DEPLOYMENT SCRIPT</title>
</head>
<body style="background-color: #000000; color: #FFFFFF; font-weight: bold; padding: 0 10px;">

<pre>
<?=$output?>
</pre>

</body>
</html>

源代码控制当然不是我的强项,我认为它是必要的邪恶,我假设脚本失败的原因是我们服务器上的 git 要么指向 github 而不是 bitbucket,要么仍在尝试使用一些以前的开发者凭据?

我已更改 git config --global user.namegit config --global user.email 来尝试解决这个问题。

任何建议将不胜感激。

【问题讨论】:

  • 您是否使用运行 PHP 脚本的同一用户测试 SSH 命令?
  • 啊,也许不是!我想脚本正在由 www-data 运行
  • 所以我认为您需要为 www-data 用户启用 SSH
  • 我认为你可能是对的,我现在会破解它,如果它有效,我会告诉你,如果你发布答案,我会给你rep ofc

标签: git github ssh version-control


【解决方案1】:

运行 PHP 脚本的用户必须可以使用 SSH 密钥。

所以看看Generating SSH keys for 'apache' userthis answer

顺便说一句,user.emailuser.name 用于提交数据中的标识,使用 SSH 用户名和密码、SSH 密钥或 HTTP 身份验证完成,与提交标识数据无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 2014-03-31
    相关资源
    最近更新 更多