2013-03-12 100 views
0

拒绝(公钥)我尽我的远程混帐服务器权限上推到远程混帐服务器

cd /var/www/vhost/example.com 
sudo git init 
sudo git remote add origin ssh://[email protected]:30000/home/git/repositories/example.git 
sudo git add . 
sudo git commit -a -m "Create empty example.com dir" 
sudo git push origin master:refs/heads/master 

我的ssh配置上创建新的仓库:

Host 111.111.111.111 
User git 
Port 30000 
IdentityFile ~/.ssh/id_rsa 

我的gitosis-admin.conf中

[gitosis] 

[group gitosis-admin] 
members = [email protected] 
writable = gitosis-admin 

[group example-com] 
members = [email protected] [email protected] 
writable = example-com 

得到错误

Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

我可以做

ssh [email protected] 

没有问题,但不能做俯卧撑。我做错了什么?我也看过类似的前一个问题GitHub: Permission denied (publickey). fatal: The remote end hung up unexpectedly,但我不使用github。

更新:好吧,我想问题在sudo。

此命令的完整whitout某种错误:

git push origin master:refs/heads/master 

此命令:

sudo git push origin master:refs/heads/master 

完整的错误:

Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 
+2

远程URL应该是'ssh://[email protected]:30000/example.git',如果它像gitolite nowaday一样远程工作。顺便说一句。你应该切换到[gitolite](http://gitolite.com/gitolite/),它是gitosis的继任者。 – poke 2013-03-12 17:40:37

+0

无论如何,我采取错误权限被拒绝(publickey)。致命:远端意外挂断。 – user2112300 2013-03-12 17:52:14

+0

当你正常ssh进入它,你有壳吗?如果是,则需要为存储库和标准ssh访问使用不同的公钥。 – poke 2013-03-12 18:24:24

回答

0

wehre死存储您的SSH配置,通常该配置位于主目录中,所以root有一个不同的主目录和一个diff不同的SSH配置,你必须将配置保存在根目录的主目录中。

0

按照GIT_TRACE=1重新运行任何git命令,例如,

GIT_TRACE=1 git push origin master:refs/heads/master 

所以你可以看到更多的输出和执行命令来检查为什么git失败。

如果在Windows上工作,请定义GIT_TRACE具有任何值的用户变量,因此它将为所有git命令启用调试模式。不需要时删除。

您也可以使用:GIT_SSH_COMMAND="ssh -vv"(Git 2.3.0+)。