我工作的开发人员最近离职了,我的任务是回收所有钥匙等。
我们使用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.name
和git config --global user.email
以尝试对抗此事。
任何建议都将不胜感激。
答案 0 :(得分:1)
SSH密钥需要可供运行PHP脚本的用户使用。
请查看How to distinct element from list 和Generating SSH keys for 'apache' user。
BTW,user.email
和user.name
用于提交数据中的标识,使用SSH用户名和密码,SSH密钥或HTTP身份验证进行身份验证,与提交标识数据无关。