gpt4 book ai didi

authorized_keys 文件中的 Gitolite 用户名

转载 作者:太空狗 更新时间:2023-10-29 13:38:46 24 4
gpt4 key购买 nike

我会尽我所能解释我的场景:

我在 debian 压缩服务器中使用 gitolite,有 3 个用户可以访问和使用存储库:

  • alex@workbox
  • alex@homebox
  • katy@workbox

以上是三个Ubuntu盒子对应的用户名和主机名(Alex在两个地方工作)。

我做的第一件事是将 alex@workbox 添加到 gitolite:

  1. Alex 使用 ssh-keygen 生成了他的 ssh key
  2. 我将他的 ssh key 复制为 alex@workbox.pub 到本地 gitolite-admin 克隆存储库的“keydir”文件夹中
  3. 修改了我本地 gitolite-admin 克隆仓库的 conf/gitolite.conf 文件,以便让 alex@workbox RW 访问仓库:
    repo project1
    RW+ = alex@workbox
  4. 像往常一样:
    • 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 存储库上进行配置更改?

最佳答案

configuration syntax 提到:

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 a domainname 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com