2

После того, как я установил Gitolite на свой NAS-устройство Synology DiskStation в соответствии с этими инструкциями:http://www.bluevariant.com/2012/05/comprehensive-guide-git-gitolite-synology-diskstation/

Я понял, что мне удалось установить gitolite, но по какой-то причине я не смог запустить установку, используя пользователя "git" - но я смог сделать это как "root"

После установки я вышел из системы. Но теперь каждый раз, когда я снова пытался войти через ssh:$ ssh root @ iptonas

Я получил эту ошибку: не удалось выполнить запрос PTY на канале 0

Я где-то читал, что gitolite теперь отключает логины ssh? Как еще я могу вернуться в оболочку ..?

2 ответа2

2
error: PTY allocation request failed on channel 0

Совершенно нормально, ожидаемо и не блокируется (т.е. будет выполняться операция ssh)

Тем не менее, вы сделали установку как root, что плохо, особенно если учесть страницу ssh Gitolite:

Если вы устанавливаете gitolite, вы - системный администратор, нравится вам это или нет.
Если вы используете режим ssh по умолчанию (т.е. не режим http), ssh - необходимый навык. Пожалуйста, найдите время, чтобы узнать, по крайней мере, достаточно, чтобы получить доступ без пароля.

Ключевым аспектом, который необходимо понять в Gitolite, является использование принудительной команды, чтобы запретить интерактивную оболочку и перехватывать любую команду (включая команды git), что позволяет ему осуществлять контроль доступа к репозиториям Git.

Это означает, что ваш файл ~root/.ssh/authorized_keys содержит строку с:

command="/devit_home/users/vobadm/gitpoc/ce7/gitolite/bin/gitolite-shell gitoliteadm",no-port-forwarding,no-X11-for        warding,no-agent-forwarding,no-pty ssh-rsa AAAAB3N

no-port-forwarding отвечает за это предупреждающее сообщение « PTY allocation request failed on channel 0 ». Но это не мешает операциям Gitolite работать правильно.

Посмотрите " как гитолит использует всю эту магию ssh?».

Для ssh, посмотрите в раздел « Устранение неполадок SSH ».
Вам нужно получить доступ к вашему серверу другим способом, нежели ssh , и удалить строку, начинающуюся с command в ~root/.ssh/authorized_keys .


Знаете ли вы, как я могу использовать Telnet, чтобы повторить процесс установки gitolite?

После входа в систему как root:

  • удалить строку, начинающуюся с команды, в файле ~root/.ssh/authorized_keys .
  • убедитесь, что ваш корневой открытый ключ зарегистрирован в том же файле (без всякой команды « command= »).

Это обеспечит root-доступ через ss.

Затем повторите установку, но сначала с помощью sudo git .
вы должны быть "мерзавцем" при выполнении этой установки.

Сначала вы должны сгенерировать на стороне клиента секретный ключ git gsh и открытый ключ git.pub .
Скопируйте открытый ключ на сервер: вы передадите этот открытый ключ команде gitolite install .

И как Райан упоминает в своем ответе, использует

DiskStation> /volume1/homes/git/gitolite/install -ln

(чтобы связать установку с ~git/bin вместо «каталога системного пути с защитой от корня» /bin ).

0

Я согласен, что Gitolite, вероятно, не должен работать от имени пользователя root. Я тоже сделал эту ошибку. Просто добавив некоторую дополнительную информацию на случай, если это поможет.

Я все еще был в состоянии SSH как root на целевой машине, добавив следующие флаги в мою команду SSH:

PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no

Конечно, это предполагает, что ваша корневая учетная запись имеет пароль, связанный с ним. Вы не сможете выполнить аутентификацию с помощью закрытого ключа из-за способа, которым Gitosis редактирует файл SSH known_hosts, однако с этим файлом не обращаются, если вы указали предпочитаемую аутентификацию с помощью флагов, перечисленных выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .