2

Следуя стандартным планам по настройке среды github, я сразу же сталкиваюсь с ошибками. Мне нравится, когда они проясняются. Я поставил более подробный вопрос ниже после искаженного кода, который выдает терминал.

следующие шаги для создания пары ключей SSH:

ssh-keygen -t rsa -C "your@email.com"

проверить соединение

ssh git@github.com

результат теста:

PTY allocation request failed on channel 0

Я не знаю, что это значит, но, как я понимаю, флаг -v выведет отладочную информацию

 ssh -v git@github.com            
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [204.232.175.90] port 22.
debug1: Connection established.
debug1: identity file /Users/redres/.ssh/id_rsa type 1
debug1: identity file /Users/redres/.ssh/id_rsa-cert type -1
debug1: identity file /Users/redres/.ssh/id_dsa type -1
debug1: identity file /Users/redres/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze1+github12
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze1+github12 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/redres/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/redres/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([204.232.175.90]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Remote: Forced command: gerve Richnl a7:d7:de:d3:80:a9:9f:be:02:88:74:50:0c:1e:5e:bc
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Remote: Forced command: gerve Richnl a7:d7:de:d3:80:a9:9f:be:02:88:74:50:0c:1e:5e:bc
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = 
PTY allocation request failed on channel 0

это не дало мне ничего полезного, потому что я не понимаю большей части этого, но после поиска в Google я использовал флаг -vT со следующим выводом

ssh -vT git@github.com
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [204.232.175.90] port 22.
debug1: Connection established.
debug1: identity file /Users/redres/.ssh/id_rsa type 1
debug1: identity file /Users/redres/.ssh/id_rsa-cert type -1
debug1: identity file /Users/redres/.ssh/id_dsa type -1
debug1: identity file /Users/redres/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze1+github12
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze1+github12 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/redres/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/redres/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([204.232.175.90]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Remote: Forced command: gerve Richnl a7:d7:de:d3:80:a9:9f:be:02:88:74:50:0c:1e:5e:bc
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Remote: Forced command: gerve Richnl a7:d7:de:d3:80:a9:9f:be:02:88:74:50:0c:1e:5e:bc
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = 
Hi Richnl! You've successfully authenticated, but GitHub does not provide shell access.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2384, received 2936 bytes, in 0.3 seconds
Bytes per second: sent 7295.9, received 8985.2
debug1: Exit status 1

так как я могу отфильтровывать все форумы и сам git, вы можете игнорировать "ошибку доступа к оболочке", потому что она вам все равно не нужна

Что я хотел бы знать, если это правильный вывод Может ли кто-нибудь объяснить мне, что такое PYT и флаг T, потому что они как бы играют центральную роль в этом. Флаг -T также не используется в официальной документации.

Пожалуйста, мне нравится это понимать, а не просто нажимать на клавиши

спасибо в Adv

Другие шаги, которые я получил, следуя этому уроку

1 ответ1

4

В Linux и аналогичных системах "PTY" или псевдо-TTY - это специальные устройства, используемые для запуска интерактивных программ командной строки; они похожи на виртуальные дисплеи / экраны, кроме только текстовых. Каждое новое окно Xterm, iTerm или Konsole, которое вы открываете, имеет свой собственный PTY. Программы записывают текст в этот PTY, а терминал выводит его на экран. Для каждого интерактивного соединения SSH сервер также использует PTY.

Однако SSH-серверы Github не предоставляют никаких интерактивных сервисов - они позволяют только отправлять и извлекать репозитории Git, которые не нуждаются или не пытаются выделить PTY; это просто поток данных. Это означает, что на сервере может быть отключено распределение PTY для учетной записи git@ .

Когда вы запускаете ssh git@github.com , ваш SSH-клиент думает, что вы собираетесь открыть интерактивное соединение, поэтому он просит сервер выделить для него PTY. Поскольку сервер не разрешает распределение PTY, печатается сообщение об ошибке. Опция -T используется для того, чтобы ваш клиент ssh никогда не запрашивал PTY на сервере.

Но используете ли вы ssh git@github.com или ssh -T git@github.com имеет значения, так как вы все равно не получите интерактивную оболочку - сервер настроен на распечатку приветствия и отключение.

Другими словами, единственный раз, когда вы подключаетесь к Github вручную, это когда вы проверяете соединение. В остальное время соединение будет осуществляться вашими инструментами git , которые никогда не используют PTY, поэтому и сообщение об ошибке, и опция -T имеют значения.

$ ssh git@github.com
PTY allocation request failed
Hi grawity! You've successfully authenticated, but GitHub does not provide shell access.
$

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