
Estamos tentando conectar-se ao serviço telnet do Linux usando um programa de terminal simples; Suspeito que o servidor esteja configurado para o padrão VT-100 e o servidor telnet envie sequências de handshake de controle, esperando que o terminal responda com suas opções suportadas e trave aguardando a resposta do terminal.
(desculpas pela má qualidade da imagem)
Infelizmente, o terminal é apenas um programa de comunicação e não conhece o protocolo telnet.
Existe alguma maneira de informar ao servidor telnet (por exemplo, através da configuração de um tipo de terminal específico) para não iniciar a identificação das propriedades do terminal remoto, mas ir diretamente para a comunicação?
Editar:
Edite a pergunta com mais detalhes: Qual terminal você está usando, que programa de "comunicação simples" é esse?
O programa de comunicação abre a conexão TCP com o PC Linux na porta 23, depois envia os caracteres digitados no teclado e exibe os caracteres recebidos na tela sem qualquer processamento de caracteres.
Você pode executar o netcat no servidor em vez (ou além) do telnetd e usar isso para depurar se a comunicação por si só está funcionando
Não tenho certeza, não controlo as duas máquinas. Mas é 100% fato que o terminal em execução da máquina é capaz de se conectar à máquina Linux, e a máquina Linux é capaz de enviar caracteres de controle do protocolo telnet (você pode ver na imagem - os caracteres brancos são 0xff - marcador inicial da opção telnet) . Não posso dizer 100% porque não tenho logs do Wireshark, mas parece que a comunicação funciona corretamente e é um servidor telnet que não passa pelo handshake do protocolo telnet.
Depois de conectado, deseja fazer login ou fazer mais alguma coisa? Você pode usar algo mais seguro no terminal, por exemplo, ssh?
Sim, quero que o servidor telnet exiba "login:" solicitando login no sistema. O serviço telnet na máquina Linux está operacional, porque é possível registrá-lo de uma terceira máquina usando o cliente telnet - mas esse cliente telnet conhece o protocolo telnet e responde a ele. No caso descrito acima, o programa terminal não sabe nada sobre códigos/protocolos de controle telnet e os exibe como caracteres sem qualquer ação adicional (resposta de acordo com o protocolo telnet).
Responder1
Primeiro de tudo, a negociação telnet não tem nada a ver com tipos de terminais. (Na verdade, o tipo de terminal édeterminadodurante a negociação telnet.) Portanto, você não pode desabilitar o primeiro alterando o último.
Como vocêpodedesativá-lo depende da implementação específica do telnetd no servidor. (Contei cinco in.telnetds diferentes apenas no Linux, outros sistemas operacionais têm os seus próprios.)
Às vezes, há uma opção de linha de comando telnetd que você pode usar na configuração do serviço (ou seja, em um arquivo .service do systemd ou /etc/inetd).
Se tudo falhar, você pode simplesmente compilar sua própria versão corrigida do telnetd; todas as distribuições Linux têm uma maneira de reconstruir pacotes a partir da receita oficial (dpkg-buildpackage, makepkg...)