- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我会尽我所能解释我的场景:
我在 debian 压缩服务器中使用 gitolite,有 3 个用户可以访问和使用存储库:
alex@workbox
alex@homebox
katy@workbox
以上是三个Ubuntu盒子对应的用户名和主机名(Alex在两个地方工作)。
我做的第一件事是将 alex@workbox
添加到 gitolite:
repo project1
RW+ = alex@workbox
git add .
git commit -m "Added alex@workbox"
git push
当 Alex 尝试克隆 project1 存储库时,出现错误提示用户“alex
”的访问被拒绝。
因此,我登录到服务器并打开了/var/lib/gitolite/.ssh/authorized_keys
。
该文件的第一部分是这样的:
command="/usr/share/gitolite/gl-auth-command alex",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa...
所以我手动将 alex
替换为 alex@workbox
,保存文件,这次 Alex 能够克隆存储库并毫无问题地使用它。
然后我按照上面的步骤添加 Katy,在推送到 gitolite-admin
之后,我再次打开 authorized_keys
文件,看到 gitolite 替换了“user@hostname
”与“user
”。
所以它有 alex
而不是 alex@workbox
并且 katy
也是如此。
然后我不得不再次手动替换它并保存文件。我看到,对于我为 gitolite-admin
repo 所做的每一次推送,gitolite 都会将其中的每个“user@hostname
”替换为“user
” .ssh/authorized_keys
这种方式使用户无法访问存储库。
如何让 gitolite 保留“user@hostname
”?
是否需要在服务器上进行配置或在本地克隆的 gitolite-admin
存储库上进行配置更改?
最佳答案
User names and repo names are as simple as possible; they must start with an alphanumeric, but after that they can also contain
.
,_
, or-
.Usernames can optionally be followed by an
@
and adomainname
containing at least one.
(this allows you to use an email address as someone's username).
您的命名约定不遵循具有“@
”的正确语法。
您可以在 src/triggers/post-compile/ssh-authkeys
中看到此规则的实际应用
sub optionise {
my $f = shift;
my $user = $f;
$user =~ s(.*/)(); # foo/bar/baz.pub -> baz.pub
$user =~ s/(\@[^.]+)?\.pub$//; # baz.pub, baz@home.pub -> baz
my @line = slurp($f);
if ( @line != 1 ) {
_warn "$f does not contain exactly 1 line; ignoring";
return '';
}
chomp(@line);
return "command=\"$glshell $user" . ( $kfn ? " $f" : "" ) . "\",$auth_options $line[0]";
}
关于authorized_keys 文件中的 Gitolite 用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13957954/
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我已成功创建gitolite-admin.git服务器上的存储库(例如)10.107.105.13 。我可以在本地计算机上克隆此存储库(例如)10.14.42.7通过发布 git clone gito
我想使用本地帐户在我的 gitolite 服务器上创建一个新存储库,而不通过 SSH 访问。这可能吗?它们是我可以使用的一些 gitolite 脚本吗? 如果我尝试通过系统上的 git 用户通过查看
我正在尝试使用 Gitolite 在 Gitlab 中创建一个新分支。我完成安装步骤。当我遇到“设置 gitolite”部分时,我遇到了麻烦。我关注了这个link . 当我运行
我正在尝试在我的 ubuntu 服务器机器上安装 gitolite。 尽管如此,还有很多事情我还不知道,但我按照它的指示非常缓慢地前进(http://sitaramc.github.com/gitol
我在 Ubuntu 12.04 上安装了 Gitolite 3.5.3。我创建了测试存储库,我只能通过 gitolite 用户而不是其他用户通过 ssh 访问它。 我需要允许通过 ssh 访问其他系统
这可能吗?我的 authorized_keys 文件被删除,更新 gitolite 管理规则仅附加到文件。是否可以根据 gitolite 配置重新生成整个文件? 编辑:找到了! gitolite 触发
快速说明:在有人指出之前,我最初是在 Server Fault 上发布这个的,但在发布之后我意识到这个站点可能更合适。抱歉“双重发帖”。 大约 6 个月前我安装了 gitolite,突然间我开始收到这
我正在尝试在 redhat 虚拟机上安装 gitolite。现在,机器未连接到互联网。因此,我无法运行标准安装的“克隆”步骤。我的机器上确实有源代码,当我运行“install -ln”步骤时 - 它会
完整的错误信息是: could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrep
我正处于让 Git 和 Gitolite 工作的最后阶段。这是目前的情况: 最佳答案 Gitolite 管理下的存储库没有工作副本。所以你要做的是创建另一个带有工作副本的存储库,提交数据并将它们推送到
我有一个奇怪的问题。我使用 TortoiseGIT (Win7) 并且我的存储库放置在虚拟服务器 (Debian) 上,我使用 gitolite 和 SSH key 。 我可以 clone存储库到我的
我是第一次设置 gitolite。我正在关注 this instructions . 当我 ssh 时,它看起来很好: $ ssh -p 2222 gitolite@debian PTY alloca
我已经配置了一个存储库和一组用户。 我已将该存储库的读取权限授予该组。 但是当我以不在组中的用户身份登录时,我能够读取存储库。 它在 gitweb 中列出了该存储库。为什么会这样? @all =
每当我尝试在我的笔记本电脑上克隆任何存储库时,我都会收到此消息: Unable to open connection: Host does not existfatal: Could not read
我已经在 ubuntu 服务器上设置了一个 gitolite 存储库,目的是让开发人员克隆/推送我们将要处理的项目。我在 repo 中的接收后 Hook 有问题。我在一个特定的 repo 中有一个接收
我尝试在 this manual 之后安装 git + gitolite - 使用来自服务器的根安装。我只是不明白新的 gitolite 用户是否必须拥有他们的用户帐户?。当我将 tester.pub
我对 gitolite 有点困惑权限。 仅允许 1 个分支并拒绝特定用户或组的所有其他分支的最佳方法是什么? 最佳答案 参见“partial-copy: selective read control
如何配置 git 和 gitolite 以允许特定用户仅更改特定目录内的文件? 例如原始主分支中的文件: /dir1/ /dir2/file1 /dir2/file2 /dir3/file1 用户 k
我正在尝试在我的服务器(Macos 服务器)上设置 gitolite。 我按照此处找到的安装文档中的说明进行操作: http://sitaramc.github.com/gitolite/doc/1-
我是一名优秀的程序员,十分优秀!