Несмотря на то, что оболочкой входа пользователя 'git' является / 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»?
Если вы не установили его, он не будет в вашей системе. Я считаю, что причина того, что вы получаете ошибку, заключается в следующем:
Вы соединяетесь с определенным ключом, который распознается в файле ~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>... YOURNAME@whereever.the.ssh.key.came.from.com
# gitolite end
Так что вместо того, чтобы соблюдать настройки оболочки по умолчанию, которые вы установили с помощью chsh
, sshd вмешивается и запускает определенную программу (в данном случае gitolite-оболочка). Это часть хитрой настройки гитолита и желаемого поведения. В вашей настройке вы пропустили gitolite или просто соответствующую ссылку в ~ git / bin на него. К сожалению, вы не сможете проверить это сейчас.
Если вы хотите попробовать это, вы можете выбрать установку из современного репозитория (инструкции здесь ), так как версия 2.2 для Ubuntu отстает от официальной версии v.3.4.
Я только что понял, что, когда я полностью сбросил весь домашний каталог пользователя 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
.