如何设置ssh访问remte裸存储库以进行管理



在VPS上,我可以使用登录

ssh admin@server.com

我在中创建了一个裸存储库

/var/repo/site.git

具有:

drwxr-xr-x   7 root root  119 Jan 31 13:35 site.git

我在本地设置:

git远程添加生产ssh://admin@server.com/../../var/repo/site.git

但是当我尝试推送时,我得到了这个错误:

PS D:pathsite-directory> git push production master
admin@server.com's password: 
Enumerating objects: 1152, done.
Counting objects: 100% (1152/1152), done.
Delta compression using up to 8 threads
Compressing objects: 100% (1073/1073), done.
remote: fatal: Unable to create temporary file '/var/repo/site.git/./objects/pack/tmp_pack_XXXXXX': Permission denied
fatal: sha1 file '<stdout>' write error: Broken pipe
error: remote unpack failed: index-pack abnormal exit
To ssh://server.com/../../var/repo/site.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'ssh://server.com/../../var/repo/site.git'

我认为我必须调整一些权限,否则我可能设置了错误的路径。

有人能帮我解决故障吗?

此目录:

drwxr-xr-x   7 root root  119 Jan 31 13:35 site.git

将用户所有权设置为root。由于admin不是该目录的所有者,Linux接下来会检查该目录是否是可全局写入的,而事实并非如此,因此它拒绝访问。

解决这个问题最简单的方法是让admin成为这个目录的所有者。

运行以下命令:

sudo chown -R admin:admin /var/repo/site.git

最新更新