如何摆脱 gitolite-shell?

如何摆脱 gitolite-shell?

尽管用户“git”的登录shell是/bin/bash,当我尝试ssh到机器时还是出现以下错误:

PTY allocation request failed on channel 0
bash: /home/git/bin/gitolite-shell: No such file or directory
Connection to 192.168.20.151 closed.

我先执行“deluser git”,然后执行“adduser git --shell=/bin/bash”,但不起作用。我再次使用“chsh”进行更改,仍然不起作用。这个“/home/git/bin/gitolite-shell”存储在哪里?

答案1

我刚刚发现,当我完全重置用户的整个主目录时git

deluser git --remove-home --backup # creates backup of home dir of git. see deluser(8)
adduser git

我摆脱了gitolite-shell

但是我仍然不知道字符串/home/git/bin/gitolite-shell存储在哪里。

答案2

除非您安装了它,否则它不会出现在您的系统中。我认为您收到错误的原因如下:

您正在连接文件中可识别的特定密钥~git/.ssh/authorized_keys。您可能在其中找到如下条目:

# gitolite start 
command="/home/git/bin/gitolite-shell YOURNAME",no-port-forwarding,
no-X11-forwarding,no-agent-forwarding,no-pty 
ssh-rsa AAAAB3N.....<snip>... [email protected]
# gitolite end

因此,sshd 不会遵守您使用 设置的默认 shell 的设置chsh,而是会干扰并启动特定程序(在本例中为 gitolite-shell)。这是狡猾的 gitolite 设置和所需行为的一部分。在您的设置中,您缺少 gitolite,或者可能只是 ~git/bin 中缺少相应的链接。不幸的是,您现在无法验证这一点。

如果你确实想尝试,你可以选择从最新的存储库安装(此处的说明) 因为 ubuntu 版本 2.2 落后于官方版本 v.3.4。

相关内容