Git部署脚本失败,但SSH没有

时间:2017-06-30 09:48:24

标签: git github ssh version-control

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

我们使用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以尝试对抗此事。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

SSH密钥需要可供运行PHP脚本的用户使用。

请查看How to distinct element from list Generating SSH keys for 'apache' user

BTW,user.emailuser.name用于提交数据中的标识,使用SSH用户名和密码,SSH密钥或HTTP身份验证进行身份验证,与提交标识数据无关。