![Невозможно войти в ssh после установки Gitolite? Запрос на выделение PTY не выполнен на канале 0](https://rvso.com/image/1316779/%D0%9D%D0%B5%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B2%D0%BE%D0%B9%D1%82%D0%B8%20%D0%B2%20ssh%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8%20Gitolite%3F%20%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%BD%D0%B0%20%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20PTY%20%D0%BD%D0%B5%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%20%D0%BD%D0%B0%20%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B5%200.png)
После установки 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, однако этот файл не будет использоваться каким-либо образом, если вы укажете предпочтительную аутентификацию с помощью перечисленных выше флагов.