INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
26.11.2019, 09:06 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019 17:49 von Hoffmakl.)
Beitrag #1
Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Hallo zusammen,
wenn ich das setPasswordHash benutze, bekomme ich folgende Fehlermeldung:
über den seriellen Monitor:
[I][ArduinoOTA.cpp:130] begin(): OTA server at: esp32-240affffffff.local:3232
Ready
IP address: 192.168.xxx.xxx
[W][ArduinoOTA.cpp:229] _onRx(): Authentication Failed
Error[0]: Auth Failed

IDE:
C:\Users\KHoff\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.4/tools/espota.exe -i 192.168.xxx.xxx -p 3232 --auth= -f C:\Users\KHoff\AppData\Local\Temp\arduino_build_13317/BasicOTA_V1.ino.bin
Sending invitation to 192.168.xxx.xxx
Beim Hochladen des Sketches ist ein Fehler aufgetreten
Authenticating...FAIL
07:47:14 [ERROR]: Authentication Failed

Ein Eingabe-Fenster (von der IDE - Umgebung) zur Eingabe des Passworts erscheint nicht.

Das Passwort "esp32" habe ich über einen MD5 Hash Generator erstellt:

Your String: esp32
Your Hash: eb3b564b7150aa15ba8351c7365a90c9

Der Sketch ist aus dem bereitgestellten Beispiel, inklusive BLINK.
(// ArduinoOTA.setPasswordHash("eb3b564b7150aa15ba8351c7365a90c9"); - funktioniert)

Code:
#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "yyyyyyy";
const char* password = "xxxxxxxx";
//variabls for blinking an LED with Millis
const int led = 2; // ESP32 Pin to which onboard LED is connected
unsigned long previousMillis = 0;  // will store last time LED was updated
const long interval = 2000;  // interval at which to blink (milliseconds)
int ledState = LOW;  // ledState used to set the LED
void setup() {

pinMode(led, OUTPUT);  
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 3232
  ArduinoOTA.setPort(3232);

  // Hostname defaults to esp3232-[MAC]
  // ArduinoOTA.setHostname("esp32-240ac480149c");

  // No authentication by default
  // ArduinoOTA.setPassword("geheimesp32");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 44cbcc6270f104d2189a149253c541b7
  ArduinoOTA.setPasswordHash("eb3b564b7150aa15ba8351c7365a90c9");

  ArduinoOTA
    .onStart([]() {
      String type;
      if (ArduinoOTA.getCommand() == U_FLASH)
        type = "sketch";
      else // U_SPIFFS
        type = "filesystem";

      // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
      Serial.println("Start updating " + type);
    })
    .onEnd([]() {
      Serial.println("\nEnd");
    })
    .onProgress([](unsigned int progress, unsigned int total) {
      Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
    })
    .onError([](ota_error_t error) {
      Serial.printf("Error[%u]: ", error);
      if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
      else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
      else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
      else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
      else if (error == OTA_END_ERROR) Serial.println("End Failed");
    });

  ArduinoOTA.begin();

  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();  
  //loop to blink without delay
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
  // save the last time you blinked the LED
  previousMillis = currentMillis;
  // if the LED is off turn it on and vice-versa:
  ledState = not(ledState);
  // set the LED with the ledState of the variable:
  digitalWrite(led,  ledState);
  }
}

Testumgebung: ESP32-ST, ESP_IDF, HIMALAYA, Arduino IDE 1.8.9 Windows, ESP32 Dev Module, 4 MB, esptool.py v2.6, Chip is ESP32D0WDQ6 (revision 0)

VG aus Altlandsberg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 12:46
Beitrag #2
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Die allgemeinen Hash-Programme werden nicht empfohlen. Hier ist ein geeignetes Programm eingebettet.

Ich habe noch nicht mit Passwort /Hash gearbeitet.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 15:46
Beitrag #3
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Danke, für deine Antwort.
Der MD5 Hash Generator erzeugt doch nur den Hash.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 16:04
Beitrag #4
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
(26.11.2019 15:46)Hoffmakl schrieb:  Danke, für deine Antwort.
Der MD5 Hash Generator erzeugt doch nur den Hash.
Ja, aber auf der verlinkten Seite steht, dass es da auch welche gibt, deren Hash wohl nicht funktioniert.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 17:39 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019 17:40 von Hoffmakl.)
Beitrag #5
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Ich habe mehrere Generatoren ausprobiert. Es ist in der Tat so, dass es unterschiedliche Ergebnisse gibt.
Als md5()-Hashwert benutze ich "esp32".

Das Ergebnis von
https://www.md5generator.de/
https://www.php-einfach.de/diverses/md5-.../?submit=1

ist eb3b564b7150aa15ba8351c7365a90c9

Das Ergebnis von
https://www.md5hashgenerator.com/
https://bueltge.de/md5/
https://de.toolpage.org/tool/md5
https://www.andre-jochim.de/md5-hash-generator.htm

ist f1d2ca350beed4539e4c3b7e752183a0

Unabhängig welchen hash ich eintrage, der Fehler ist immer der gleiche.

Was mir fehlt ist eigentlich, dass folgendes Fenster aufgeht

[Bild: arduinoota-esp32-3-password-authentication.jpg]

Nach der Eingabe kann doch erst festgestellt werden, dass die Authentifizierung falsch ist, oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 17:54
Beitrag #6
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
(26.11.2019 17:39)Hoffmakl schrieb:  Nach der Eingabe kann doch erst festgestellt werden, dass die Authentifizierung falsch ist, oder?
Eigentlich schon. Es könnte aber auch ganz einfach ein weiterer ESP32-Bug sein.

Evtl. weiß jemand anderes noch etwas. Für mich ist das ESP32-Feld noch viel zu instabil.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 18:22 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019 18:22 von amithlon.)
Beitrag #7
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Hallo,

habe das gerade mal durchgespielt: IDE 1.8.10, ESP32 1.0.4
BasicOTA aus den Beispielen erstmal ohne Passwort: ok
Den Beispielhash für admin eingetragen: Abfrage beim OTA-Flash kommt und admin wird akzeptiert.
Hash für admin mit https://www.md5generator.de/ berechnet: stimmt überein.
Hash für esp32 berechnet und eingetragen: keine Abfrage bei OTA-Flash, die IDE scheint das letzte Passwort zu speichern, zumindest bis man sie beendet.
ESP32 mit dem neuen Hash neu gestartet: Abfrage kommt, esp32 wird akzeptiert.
Geht also zumindest soweit wie beschrieben.
esp32 Hash stimmt auch mit dem aus Deinem ersten Post überein.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 18:24
Beitrag #8
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Für OTA ist Python 2.7.x erforderlich. Installiert habe ich 3.8.0 (32-bit) auf dem PC.
In der IDE wird mir esptool.py v2.6 angezeigt. Muss Python in die IDE Umgebung eingebunden werden?

Ich verwende einen ESP Chip mit (revision 0). Werde mal mit einem neueren Testen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Was machen wenn man einen Kontakt 2x benötigt?? DO3GE 10 213 12.12.2019 13:42
Letzter Beitrag: DO3GE
  AT90CAN Interrupt wird nicht ausgelöst slsb02 5 270 19.11.2019 15:04
Letzter Beitrag: slsb02
  Wenn pin high dann anderen pin kurz aktivieren Prospekteur 16 1.337 15.10.2019 14:18
Letzter Beitrag: Tommy56
  If...els if wird nich korrekt ausgeführt suterb 18 1.569 28.05.2019 13:51
Letzter Beitrag: Tommy56
  Bedingung wird nicht wiederholt ausgeführt Lite 16 1.823 29.03.2019 05:11
Letzter Beitrag: Lite
  Ram Speicher bei Arduino Mega wird knapp unkreativ 22 2.060 02.02.2019 18:40
Letzter Beitrag: unkreativ
  Loop wird doppelt ausgeführt nanoheld 6 1.072 26.11.2018 21:06
Letzter Beitrag: hotsystems
  Befehl wird nicht ausgeführt renesworld 15 1.713 19.10.2018 12:37
Letzter Beitrag: hotsystems
  MQTT ausgabe auf ili9341 wird flasch dargestellt merz 13 2.651 03.04.2018 11:30
Letzter Beitrag: merz
  Bool wird nicht umgesetzt Wampo 3 1.207 10.03.2018 23:04
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste