Что делать с «Запросом на выделение PTY на канале 0» - PullRequest
41 голосов
/ 02 октября 2010

Я не вижу, как обернуть голову, создавая ключ ssh для GitHub.Я работал некоторое время назад, но я не могу понять, что изменилось.С тех пор я удалил предыдущие ключи SSH из моей учетной записи GitHub.После нескольких инструкций для генерации ключа SSH (http://help.github.com/mac-key-setup) и проверки «ssh git@github.com» я получаю следующее:

Сбой запроса выделения PTY на канале 0 ОШИБКА: Привет ... успешно аутентифицирован ... GitHub не предоставляет доступ к оболочке ... Соединение с github.com закрыто.

Я просмотрел руководство по устранению неполадок и заметил, что мойВ каталоге ssh не было файла конфигурации. После его создания я не уверен, что или как ввести локальный путь в строке IdentityFile. Я даже не уверен, нужно ли это в моем случае?

Если ваша информация для аутентификации на github отличается от вашей учетной записи компьютера, вам нужно изменить файл конфигурации ssh.

Создайте или откройте файл в ~ / .ssh / config Добавьте следующие строки:

Host github.com
    User git
    Hostname github.com
    PreferredAuthentications publickey
    IdentityFile [local path to private key half of github public key you provided]

Вам также может потребоваться обновить разрешения для вашей папки .ssh и ее содержимого. Приложение SSH будет игнорировать секретные файлы tЭто слишком разрешительно.

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*

Я также запустил ssh -v git@github.com, результаты которого можно увидеть здесь http://gist.github.com/607283 Ничего не отличается от того, что я могу сказать.

Есть идеи, что я делаю не так?

1 Ответ

36 голосов
/ 02 октября 2010

Как описано в комментариях к вопросу, «запрос на выделение PTY не выполнен» является красной сельдью в отношении аутентификации GitHub (это результат попытки интерактивного входа в GitHub, когда единственная предлагаемая ими служба SSH не является интерактивный Git-over-SSH; аутентификация работает, они просто не предоставляют интерактивный сервис «shell»).


Человек, который задал вопрос, написал это в комментарии:

Я предполагаю, что связанная проблема заключается в том, что когда я пытаюсь создать новый репозиторий и "мастер git push origin", я возвращаю следующее "Ошибка: В myemail@address.com/myapp отказано в myusername. Fatal: удаленный конец неожиданно повесил трубку "

Вероятно, это и есть настоящая проблема. Кажется, это указывает на то, что пульт с именем origin не настроен для правильного указания на хранилище GitHub.

Проверьте вывод git remote show -n origin. Возможно, «Fetch URL» и «Push URL» совпадают. Они оба должны выглядеть так:

git@github.com:git-user-name/repository-name

При входе в GitHub в Интернете вы можете использовать либо имя пользователя вашей учетной записи, либо связанный с ним адрес электронной почты. При отправке в репозитории (или при извлечении из частных репозиториев) вы должны использовать свое действительное имя пользователя (адрес электронной почты не будет работать). Похоже, вы используете свой адрес электронной почты, а не просто имя пользователя GitHub. Чтобы это исправить, перенастройте URL-адрес пульта:

git remote set-url origin git@github.com:github-username/repository-name

Ваше имя пользователя отображается во многих местах на веб-страницах GitHub, как только вы вошли в систему. Его проще всего найти между граватаром и ссылкой «Панель инструментов» в заголовке страницы (вы увидите значок силуэта, если вы не настроили граватар). Это же место ссылки на вашу общедоступную страницу профиля; URL этой страницы также должен заканчиваться вашим именем пользователя.

...