2017-01-18 5 views
0

Ich versuche, eine sftp Verbindung mit esp8266 WiFi-Modul zu machen, aber ich habe Probleme. Zuerst habe ich erfolgreich verbunden Esp8266 zu meinem Router dann habe ich versucht, indem Sie folgenden Befehl ein TCP-Verbindung zum SFTP-Server machensftp Verbindung über esp8266 Modul

AT+CIPSTART="TCP","[email protected]",22 

aber ich bekomme immer von Esp8266 antworten „DNS FAIL“. Wie kann ich eine sftp Verbindung mit dem esp8266 wifi Modul herstellen?

Antwort

2

Nach https://github.com/espressif/ESP8266_AT/wiki/CIPSTART die Syntax des Befehls AT+CIPSTART ist

AT+CIPSTART=type,addr,port 

Ihre "Adresse" Parameter nur der Host-Name sein muss. Es scheint, dass Sie dort eine URL mit einem Benutzernamen ([email protected]) setzen. Der Hostname sollte einfach test.rebex.net sein, oder? Der literale Hostname [email protected] existiert nicht und kann daher nicht DNS-aufgelöst werden, was den Fehler erklärt. Die Authentifizierung als Benutzer demo wird dann im Protokoll ausgeführt.

Beachten Sie jedoch, dass SFTP ein komplexes Protokoll ist. Dieser Befehl CIPSTART öffnet nur einen rohen TCP-Socket für diesen Hostnamen und diesen Port für Sie. Insbesondere führt die Ausgabe dieses Befehls keine High-Level-Protokolllogik für Sie aus. Es ist nur ein Sockel, den Sie schreiben und lesen können. Wenn Sie mit SFTP FTP over SSL meinen, müssen Sie in der Lage sein, ein SSL-Protokoll mit allen beteiligten Kryptografien auszuführen. Wenn Sie mit SFTP meinen, Secure File Transfer Protocol (SFTP), benötigen Sie eine SSH-Implementierung (und ziemlich ähnliche kryptografische Primitive). Diese Art von Berechnungen sind definitiv nicht für einen Arduino geeignet, der AT + Befehle sendet, daher würde ich vorschlagen, den ESP8266 direkt zu programmieren. Die esp-open-rtos hat viele Beispiele für SSL-Verbindungen, aber SSH oder SFTP ist noch nicht implementiert.