Os protocolos SSH ou FTP informam ao servidor a qual domínio estou tentando conectar-me?

25

Ao usar os comandos sshou ftpdo shell Bash, o servidor que estou conectando para saber o nome de domínio usado? Entendo que o nome do domínio é traduzido localmente em um endereço IP via DNS. No HTTP, depois que isso acontece, o servidor também recebe o nome do domínio original para exibir a página correta ou apresentar o certificado TLS (SNI) correto.

host serverfault.com
GET /

Um fenômeno semelhante acontece ao conectar-se a sshou ftp?

Eu pergunto porque estou tentando conectar com ssh em um servidor (GoDaddy webhosting) que espera um nome de domínio, mas não está me permitindo entrar quando tento conectar-me user@IPaddressporque o DNS ainda não foi movido para o endereço IP do GoDaddy.

dotancohen
fonte
Você tem .ssh/configespecífico para o nome do host (ou o endereço IP)? Que erro você recebe? (Hmm, este é o apoio, mas não para o objetivo de responder à pergunta ...)
Andreas Krey
Apenas o genérico Login authentication failedpara FTP e Permission deniedSSH. A conexão real está correta e eu verifiquei quatro vezes as credenciais de login.
dotancohen

Respostas:

25

Não, os clientes SSH não transmitem o nome DNS ao qual você se conectou no servidor.
Como você disse corretamente, o nome é resolvido localmente no endereço IP.

Parece que eu estava errado sobre o FTP.
Veja a outra resposta para detalhes.

falsificador
fonte
5
Não é mais verdade para o FTP. Veja minha resposta
Martin Prikryl
Interessante, eu não sabia disso. Eu editei minha resposta. Obrigado!
faker
Na verdade, a partir de 2015, a resposta não editada ainda está correta na maioria dos casos. Isso pode mudar nos próximos anos, no entanto.
dotancohen
Gostaria de saber quantos clientes ainda o suportam. De qualquer forma, sua resposta é mais correta.
faker #
@faker Adicionei poucas informações sobre o suporte do lado do cliente que eu conheço. Pode fazer algumas pesquisas mais tarde.
Martin Prikryl
34

O protocolo SSH / SFTP não possui nenhum mecanismo para fornecer o host ao servidor.

Houve uma discussão sobre como adicionar essa funcionalidade ao OpenSSH, consulte "Hosts virtuais" para ssh .


O protocolo FTP faz tem HOSTcomando, que é um equivalente ao HTTP Hostcabeçalho. É especificado por um RFC 7151 relativamente novo . A RFC foi publicada em março de 2014 (embora o primeiro rascunho seja de 2007). Como tal, ainda não é universalmente suportado.

No lado do servidor, ele é suportado pelo IIS (o RFC é patrocinado pela Microsoft) e ProFTPD (desde 1.3.6rc1). Não é suportado por outros servidores FTP Unix comuns, como Pure-FTPd ou vsftpd.

No lado do cliente, ele é suportado pelo (meu) WinSCP . Não é suportado pelo FileZilla, pois o autor se opõe à ideia , nem pelo CyberDuck. Eu não sei sobre os outros.

Martin Prikryl
fonte
Obrigado, essa será uma consideração importante nos próximos anos, quando as pessoas encontrarem esse problema e pesquisarem no Google.
dotancohen
1
É bom Saber. Desejo que algo assim também exista para o ssh, porque tenho a necessidade de um front-end que possa despachar conexões ssh feitas para um endereço IP para servidores diferentes com base no nome do host. Mas todas as minhas pesquisas anteriores concordam com a sua conclusão, de que ela não existe para o ssh e não pode ser facilmente adicionada ao protocolo.
kasperd
@ Kasperd, você pode usar números de porta diferentes para as diferentes conexões. Ou você pode fazê-lo com base no nome de usuário.
AE
@AE Nenhuma abordagem funcionaria para o meu caso de uso. Quando preciso decidir para qual servidor enviar a conexão, o cliente ainda não enviou o nome de usuário. (Além disso, tenho certeza de que o nome de usuário é enviado apenas criptografado e não sei como mitigar uma conexão ssh para extrair o nome de usuário.) O número da porta também não funcionará porque meu front-end realmente executa uma pesquisa de DNS no nome do host para encontrar o back-end. (O frontend é dual stack, os backends não tem qualquer endereço IPv4 público, o objetivo do frontend é fazer com que os backends acessível para IPv4-somente os clientes.)
kasperd
2
@kasperd Adicionei um link ao tópico da lista de discussão do OpenSSH sobre como adicionar isso ao SSH.
Martin Prikryl 03/03