Em sistemas Linux e similares, "PTYs" ou pseudo-TTYs são dispositivos especiais usados para executar programas de linha de comando interativos; Eles são como telas virtuais, exceto somente texto. Cada nova janela Xterm ou iTerm ou Konsole que você abrir tem seu próprio PTY. Programas escrevem texto para aquele PTY, e o terminal o desenha na tela. Para cada conexão SSH interativa, o servidor também usa um PTY.
No entanto, os servidores SSH do Github não fornecem serviços interativos - eles permitem somente o envio e a busca de repositórios Git, que não precisam nem tentam alocar um PTY; é apenas um fluxo simples de dados. Isso significa que o servidor pode ter a alocação de PTY desativada para a conta git@
.
Quando você executa ssh [email protected]
, seu cliente SSH acha que você vai abrir uma conexão interativa, então ele pede ao servidor para alocar um PTY para ele. Como o servidor não permite a alocação de PTY, a mensagem de erro é impressa. A opção -T
é usada para dizer ao seu cliente ssh
para nunca solicitar um PTY no servidor.
Mas se você usa ssh [email protected]
ou ssh -T [email protected]
é irrelevante, já que você não obterá um shell interativo - o servidor está configurado para imprimir apenas uma mensagem de saudação e desconectar.
Em outras palavras, a única vez que alguma vez você se conecta ao Github manualmente é quando você está testando a conexão. O resto do tempo, a conexão será feita pelo seu git
tools, que nunca usa um PTY, então tanto a mensagem de erro quanto a -T
são irrelevantes.
$ ssh [email protected] PTY allocation request failed Hi grawity! You've successfully authenticated, but GitHub does not provide shell access. $