Podemos usar o ssh para se conectar a um servidor da Web e, em seguida, enviar uma solicitação http e receber uma resposta http?

0
telnet www.ietf.org 80
GET /rfc.html HTTP/1.1
Host: www.ietf.org

Esta seqüência de comandos inicia uma conexão telnet (isto é, TCP) à porta 80 em Servidor da Web da IETF, www.ietf.org. Então vem o comando GET nomeando o caminho da URL e do protocolo. Tente servidores e URLs de sua escolha. o a próxima linha é o cabeçalho de host obrigatório.

  1. Podemos usar ssh em vez de telnet , algo como

    ssh www.ietf.org 80
    GET /rfc.html HTTP/1.1
    Host: www.ietf.org
    

    ?

  2. Quais outros programas além de ssh podem ser usados no lugar de telnet no acima exemplo para estabelecer uma conexão de um host local para um http remoto servidor, para que possamos enviar uma solicitação http para o servidor http e recebe uma resposta http dele?

    Quais tipos de programas podem ser usados no lugar de telent no exemplo acima?

Obrigado.

    
por Tim 19.11.2016 / 19:48

2 respostas

1

Você não pode usar ssh , pois os clientes SSH aguardam por algum banner do servidor, antes de prosseguir com a verificação da chave do host do servidor, ... O protocolo SSH não tem nada a ver com HTTP:

$ telnet localhost 222
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.0

Você pode consultar seu servidor da Web usando telnet , pois ele permite que você grave mensagens em texto sem formatação em um soquete.

Outro cliente TCP (e UDP) "genérico" popular (e servidor) seria nc :

$ nc localhost 222
SSH-2.0-OpenSSH_7.0

$ nc webserver 80
GET /
<?xml version="1.0" encoding="UTF-8"?>
[...]

Atualização, em resposta a telnet também é um protocolo diferente de http, mas por que podemos usar http sobre telnet, mas não sobre ssh

O cliente telnet é independente de protocolo. Ele permite que você leia / escreva, tendo conectado a um servidor TCP.

Sendo o HTTP um protocolo baseado em mensagens de texto simples, você pode facilmente forjar consultas HTTP usando telnet ou nc .

Em resposta a O que o 'banner do servidor' pelo qual os clientes SSH aguardam antes de prosseguir com a verificação da chave de host do servidor?

O cliente SSH não é um protocolo agnóstico. A primeira coisa que seu cliente ssh fará depois de estabelecer sua sessão com seu servidor TCP é aguardar uma mensagem de banner, que deve identificar a versão do servidor OpenSSH. Então, checando a chave do host, eventualmente autenticando, o que deve abrir um shell, ... O cliente ssh é relevante somente conectando-se aos servidores ssh.

    
por 19.11.2016 / 21:55
1

Can we use ssh to connect to a web server and then send a http request and receive a http response?

Não. SSH é um protocolo mais complicado que telnet .

What other programs ...

Como já foi mencionado, netcat é um bom exemplo, se você quiser escrever solicitações HTTP brutas. Caso contrário, você pode conseguir o mesmo com wget , curl ou apenas com as ferramentas do desenvolvedor em seu navegador.

Para responder às perguntas adicionais:

(1) telnet is also a protocol different from http, but why can we use http over telnet, but can't over ssh?

Não é "http over telnet" . Você ainda está usando o protocolo HTTP, mas usando a ferramenta telnet . Eles são protocolos de texto bastante sem restrições e você pode enviar qualquer coisa usando-os.

(2) What does 'banner from the server' which SSH clients awaits for before proceeding with server host key check?

O servidor está esperando por "banner do cliente" , formalmente string de identificação do cliente , conforme explicado em RFC4253 descrevendo a camada de transporte SSH. Existem muitos estágios antes de prosseguir com a verificação da chave do host do servidor, mas é basicamente a troca de chaves (a primeira mensagem mostrada acima).

    
por 20.11.2016 / 09:46