I protocolli SSH o FTP indicano al server a quale dominio sto cercando di connettermi?


25

Quando si utilizzano i comandi ssho ftpdalla shell Bash, il server a cui mi sto connettendo viene a conoscenza del nome di dominio utilizzato? Comprendo che il nome di dominio è tradotto localmente in un indirizzo IP tramite DNS. In HTTP, dopo ciò accade, al server viene comunicato anche il nome di dominio originale per servire la pagina corretta o per presentare il certificato TLS (SNI) corretto.

host serverfault.com
GET /

Si verifica un fenomeno simile quando ci si connette a ssho ftp?

Lo chiedo perché sto provando ad accedere a un server (webhosting GoDaddy) che si aspetta un nome di dominio, ma non mi fa entrare quando provo a connettermi via user@IPaddresspoiché il DNS non è ancora spostato all'indirizzo IP GoDaddy.


Hai una .ssh/configspecifica per il nome host (o l'indirizzo IP)? Che errore ricevi? (Hmm, questo è supporto, ma non allo scopo di rispondere alla domanda ...)
Andreas Krey

Solo il generico Login authentication failedper FTP e Permission deniedper SSH. La connessione effettiva è corretta e ho quadruplicato le credenziali di accesso.
dotancohen

Risposte:


25

No, i client SSH non passano il nome DNS a cui ti sei connesso al server.
Come hai detto correttamente, il nome viene risolto localmente nell'indirizzo IP.

Sembra che mi sia sbagliato su FTP.
Vedi l'altra risposta per i dettagli.


5
Non è più vero per FTP. Vedi la mia risposta
Martin Prikryl

Interessante, non lo sapevo. Ho modificato la mia risposta. Grazie!
falso

In realtà, a partire dal 2015 la risposta inedita è ancora corretta nella maggior parte dei casi. Ciò potrebbe cambiare nei prossimi anni, però.
dotancohen

Mi chiedo quanti clienti lo supportino ancora. In ogni caso la tua risposta è più corretta.
falso

@faker Ho aggiunto poche informazioni sul supporto lato client che conosco atm. Potrebbero fare ulteriori ricerche in seguito.
Martin Prikryl

34

Il protocollo SSH / SFTP non ha alcun meccanismo per fornire l'host al server.

C'è stata una discussione sull'aggiunta di questa funzionalità a OpenSSH, vedere "Host virtuali" per ssh .


Il protocollo FTP ha avere HOSTcomando, che è equivalente al HTTP Hostintestazione. È specificato da un relativamente nuovo RFC 7151 . La RFC è stata pubblicata nel marzo 2014 (anche se la prima bozza è del 2007). Pertanto, non è ancora universalmente supportato.

Sul lato server, è supportato da IIS (RFC è sponsorizzato da Microsoft) e ProFTPD (dall'1.3.6rc1). Non è supportato da altri server FTP Unix comuni come Pure-FTPd o vsftpd.

Sul lato client, è supportato da (my) WinSCP . Non è supportato da FileZilla, poiché il suo autore si oppone all'idea , né da CyberDuck. Non conosco gli altri.


Grazie, questa sarà una considerazione importante nei prossimi anni quando le persone incontreranno questo problema e google questa domanda.
dotancohen

1
È bello sapere. Vorrei che esistesse qualcosa del genere anche per ssh, perché ho la necessità di un frontend in grado di inviare connessioni ssh fatte a un indirizzo IP a server diversi in base al nome host. Ma tutta la mia ricerca precedente concorda con la tua conclusione, che non esiste per ssh e che non può essere facilmente aggiunta al protocollo.
Kasperd,

@kasperd, è possibile utilizzare numeri di porta diversi per le diverse connessioni. Oppure potresti farlo in base al nome utente.
AE

@AE Nessuno dei due approcci funzionerebbe per il mio caso d'uso. Quando devo decidere a quale server inviare la connessione, il client non ha ancora inviato il nome utente. (Inoltre sono abbastanza sicuro che il nome utente sia solo inviato crittografato e non so come mitigare una connessione ssh per estrarre il nome utente.) Il numero di porta non funzionerà neanche perché il mio frontend esegue effettivamente una ricerca DNS del nome host per trovare il backend. (Il frontend è dual stack, i backend non hanno alcun indirizzo IPv4 pubblico, lo scopo del frontend è di rendere i backend accessibili ai client solo IPv4.)
kasperd

2
@kasperd Ho aggiunto un link al thread della mailing list di OpenSSH sull'aggiunta di questo a SSH.
Martin Prikryl
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.