我正试图在CentOS VPS上将Bitbucket的私人仓库克隆到/ var / www。
我在VPS上生成了一个SSH密钥对,并将.pub文件作为(只读)Deploy Key上传到Bitbucket。
键设置正确,因为当我使用连接时:
ssh -T git@bitbucket.org
它工作正常:
authenticated via deploy key.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
This deploy key has read access to the following repositories:
<username>/<repo_name>: <Deployment Key Nickname> -- <vps_username>@<vps_hostname>
Connection to bitbucket.org closed.
到目前为止,这么好。但是当我尝试将repo克隆到/ var / www时,我得到:
fatal: could not create work tree dir '<repo_name>'.: Permission denied
当我sudo它时,我得到了
Permission denied (publickey).
我在Bitbucket docs中找到了关于上述错误的说明:
您在尝试连接时使用了sudo 在使用Bitbucket克隆存储库或任何其他SSH操作时,您不需要使用sudo。
看起来我需要以root权限运行才能创建树,但如果我这样做,则表明它没有正确使用SSH密钥。
所以,我chmod了/ var / www目录,以便我的非root用户具有写权限,一切正常。但那个目录现在是777(drwxrwxrwx),这可能并不好。
有没有更好的方法来解决这个问题?我想让/ var / www回到755,但每次我想更新我的代码时,我都不想乱用一个临时的chmod ...
提前致谢!
答案 0 :(得分:2)
使/ var / www group-writable(chmod g+w /var/www
)并将其组更改为受信任用户(包括您)所属的组。如果你不想打开/ var / www的全部,那么你可以引入一个额外的级别,比如/ var / www / foo,你打开它。