rsync - 使用 rsync 备份 gitosis 存储库?

标签 rsync gitosis

我有一个标准的 gitosis 设置,我想使用 rsync 进行备份。当我尝试:

rsync -avz git@192.168.0.2:/home/git git_origin/

或者
rsync -avz --rsync-path 'sudo rsync' 192.168.0.2:/home/git git_origin/

它不处理存储库文件。很确定这与“git”用户如何没有密码和对/home/git/repositories 目录结构中所有文件的完全所有权有关。由于您不能 'ssh git' 或 'su git' 我无法达到正确的权限级别。

那么,如何使用 rsync 备份我的所有 gitosis 存储库?

最佳答案

IMO 最简单的方法是将自定义 key 添加到您的 authorized_keys git 用户的文件。

### autogenerated by gitosis, DO NOT EDIT 行上方添加一个条目作为 /home/git/.ssh/authorized_keys 下的 root 用户(在大多数 Linux 系统上)你应该很高兴。 Gitosis 默认忽略 authorized_keys 的自定义条目。重新生成文件时。

如果您想进一步锁定服务器,您可以随时添加自定义 command=输入键之前的指令,谷歌搜索“rsync ssh lock down”会给你http://sixohthree.com/1458/locking-down-rsync-using-ssh作为第一个打击,这应该让你开始。

通过 rsync 获取文件而不跳过一些随机用户切换箍(如在 user->root->git 切换中)的唯一另一种方法是使用 ssh 以 root 用户身份连接并使用它来获取文件。

通过提供自定义 authorized_keys 以 root 用户身份运行并以 git 用户身份运行 ssh条目应该为您提供访问要 rsync 的文件所需的权限。

关于rsync - 使用 rsync 备份 gitosis 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016655/

相关文章:

linux - rsync可以在同步前验证内容吗

python - 当子进程运行时,如何打印此代码的进度?

git - Gitosis 可以强制执行正确的用户名/电子邮件吗?

git - 如何将分支添加到 gitosis 中的存储库

linux - rsync 排除/包含奇怪的行为

linux - 期望带有引号的 rsync 脚本

git/gitosis : How to check validity of user name and email?

ssh - windows下生成有效的openssh ssh key

security - 使 gitosis-admin git 存储库安全

linux - 如何通过rsync只复制符号链接(symbolic link)