如何正确使用ssh git?

时间:2018-03-17 10:46:58

标签: git ssh

CentOS 7,Git 2.16.2

建立网站,将其称为" godaddy.com"
创建用户godaddy
mkdir / home / godaddy / httpdocs
git init
git config receive.denyCurrentBranch updateInstead

在我的本地Windows PC中,使用私钥成功添加此远程源。 但我发现,如果用户" godaddy"使用sftp,他可以访问上层目录,比如/ etc / httpd,/ etc / init.d ......

我认为用户应该限制在他的主目录中。

使用selinux?如果不使用selinux,其他方式? 使用http git?

1 个答案:

答案 0 :(得分:0)

这是您的SSH或用户权限设置的属性,与Git本身没什么关系。

解决此问题而不摆弄用户权限的一种方法是更改​​此用户通过SSH访问服务器时调用的命令。默认情况下,用户具有正常的shell访问权限(即生成常规shell)。您可以通过指定自定义shell命令来更改此设置。您可以在authorized_keys文件中进行设置,通常位于$HOME/.ssh/authorized_keys

git-shell是一个有限的shell,您可以将其用于此目的。

如果您想要更精细的控制,请考虑Gitolite。如果这太麻烦了,可以考虑使用GitHub这样的服务。

另请注意,您不希望推送到非裸存储库(即具有工作树的存储库)。如果您需要设置部署过程,请至少使用三角形设置,从本地计算机推送到某个裸存储库,然后从中获取要部署的内容。对于一个简单的用例,这很容易编写脚本。还有Travis CI这样的服务可以做类似的事情。