Невозможно войти в ssh после установки Gitolite? Запрос на выделение PTY не выполнен на канале 0

Невозможно войти в ssh после установки Gitolite? Запрос на выделение PTY не выполнен на канале 0

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

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

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

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

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

решение1

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 работать должным образом.

Видеть "как gitolite использует всю эту SSH-магию?".

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


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

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

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

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

Затем повторите установку, но с sudo gitодним условием:
при выполнении этой установки у вас должны быть права «git».

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

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

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

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

решение2

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

Мне все еще удалось подключиться к целевой машине с правами root по протоколу SSH, добавив следующие флаги в команду SSH:

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

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

Связанный контент