Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

kadettilac89

Zitat von: Loredo am 21 April 2019, 12:17:38
Ich habe im DEV Image jetzt mal die DNS Auflösung für "host.docker.internal" nebst automatischer SSH Host Key Aktualisierung eingebaut.
Über diesen DNS Namen kann man dann automatisch eine SSH Verbindung zum Docker Host aufbauen. Bitte einmal testen.

gute Idee, habe es getestet. Funktioniert. Danke

kotaro

Hab jetzt mal das dev vom FHEM-Build gemacht. und unter enviroment DOCKER_HOST=172.27.0.1 eingefügt. Wobei mein Fhem die 172.27.0.6 als IP hat...
leider kommt unter FHEM Folgende Meldung:
ssh: connect to host host.docker.internal port 22: Connection refused

kadettilac89

hast du ssh für den User auf dem Host konfiguriert? Gibt es den Ordner bzw. die Datei ? /home/<user>/.ssh/authorized_keys   

<user> ist bei dir ggf. PI

Wenn nicht musst du erstmal SSH konfigurieren. Hat aber nichts mit Docker zu tun.

kotaro

Zitat von: kadettilac89 am 21 April 2019, 19:47:17
hast du ssh für den User auf dem Host konfiguriert? Gibt es den Ordner bzw. die Datei ? /home/<user>/.ssh/authorized_keys   

<user> ist bei dir ggf. PI

Wenn nicht musst du erstmal SSH konfigurieren. Hat aber nichts mit Docker zu tun.

Hallo,

also ssh ist eingerichtet... (komme per Putty ja drauf.. auch mit einem zweiten Schlüssel..)
es gibt im Host die datei authorized_keys mit 2 Schlüssen, der 2. ist für Putty, der erste ist (zumindest die letzten 7 Zeichen) gleich dem, welcher unter fhem/core/.ssh/id_rsa.pub drinn steht...

okay. weiter oben hab ich meinen Fehler entdeckt.. ich hab das enviromental host herausgenommen.. und neu gestartet.. und gateway eingesetzt...
jetzt kommt "leider" die nächste Fehlermeldung:

Host key verification failed.

....
ich probiere es mal weiter

kadettilac89

#289
Zitat von: kotaro am 21 April 2019, 19:53:46
Host key verification failed.

....
ich probiere es mal weiter

das bedeutet dass die Keys nicht zusammenpassen.

du kannst mal die Schritte aus meinem Post https://forum.fhem.de/index.php/topic,89745.msg932018.html#msg932018
testen, das ist die Minimalkonfiguration in einem Script das bei mir problemlos alles anlegt was ich brauch. Du muss nur aufpassen dass du die bestehende Konfiguration nicht überschreibst sonst funktioniert die aktuelle Konfig nicht mehr über Putty.

edit. die letzte Zeile ist nicht mehr nötig, das ist jetzt im Docker schon drin (ssh-keyscan)

nightstorm99

Zitat von: Loredo am 21 April 2019, 12:17:38
Geht hier, gerade getestet. Natürlich heißen die beiden Perl Module aber "DateTime::Event::Sunrise" und "Date::Calc" - wie du auf den Präfix "App::" kommst, ist mir unverständlich.

Ich bekomme trotzdem die Fehlermeldungen:
2019.04.21 20:11:03 1: reload: Error:Modul 99_SUNRISE deactivated:
Can't locate DateTime/Event/Sunrise.pm in @INC (you may need to install the DateTime::Event::Sunrise module) (@INC contains: . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM ./FHEM/lib) at ./FHEM/99_SUNRISE.pm line 14, <DATA> line 1.
BEGIN failed--compilation aborted at ./FHEM/99_SUNRISE.pm line 14, <DATA> line 1.

2019.04.21 20:11:03 1: reload: Error:Modul 99_myUtilsBewaesserung deactivated:
Can't locate Date/Calc.pm in @INC (you may need to install the Date::Calc module) (@INC contains: . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM ./FHEM/lib) at ./FHEM/99_myUtilsBewaesserung.pm line 13, <DATA> line 1.
BEGIN failed--compilation aborted at ./FHEM/99_myUtilsBewaesserung.pm line 13, <DATA> line 1.

2019.04.21 20:11:03 1: Including fhem.cfg
2019.04.21 20:11:03 1: reload: Error:Modul 99_SUNRISE deactivated:
Can't locate DateTime/Event/Sunrise.pm in @INC (you may need to install the DateTime::Event::Sunrise module) (@INC contains: . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM ./FHEM/lib) at ./FHEM/99_SUNRISE.pm line 14, <$fh> line 11.
BEGIN failed--compilation aborted at ./FHEM/99_SUNRISE.pm line 14, <$fh> line 11.

2019.04.21 20:11:03 1: reload: Error:Modul 99_myUtilsBewaesserung deactivated:
Can't locate Date/Calc.pm in @INC (you may need to install the Date::Calc module) (@INC contains: . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM ./FHEM/lib) at ./FHEM/99_myUtilsBewaesserung.pm line 13, <$fh> line 11.
BEGIN failed--compilation aborted at ./FHEM/99_myUtilsBewaesserung.pm line 13, <$fh> line 11.


Ich starte FHEM über docker-compose! Kann es daran liegen?

Danke und Gruß

Holzlenkrad

Zitat von: kadettilac89 am 21 April 2019, 20:00:12
das bedeutet dass die Keys nicht zusammenpassen.

du kannst mal die Schritte aus meinem Post https://forum.fhem.de/index.php/topic,89745.msg932018.html#msg932018
testen, das ist die Minimalkonfiguration in einem Script das bei mir problemlos alles anlegt was ich brauch. Du muss nur aufpassen dass du die bestehende Konfiguration nicht überschreibst sonst funktioniert die aktuelle Konfig nicht mehr über Putty.

edit. die letzte Zeile ist nicht mehr nötig, das ist jetzt im Docker schon drin (ssh-keyscan)

Also im Endeffekt muss ich nach der heutigen Änderung am FHEM Container nur noch den SSH Public Key von FHEM in die Datei mit den autorisierten Keys auf dem Docker Host eintragen? Muss ich nicht noch im Container festlegen, unter welchem Nutzer sich dann das FHEM Modul auf dem Host einloggen soll?

Ich hatte das ja ursprünglich in der ssh config von FHEM noch rein geschrieben.
Oder erkennt der SSH-Server zu welchen Nutzer das Zertifikat passt?

kotaro

#292
Zitat von: kadettilac89 am 21 April 2019, 20:00:12
das bedeutet dass die Keys nicht zusammenpassen.

du kannst mal die Schritte aus meinem Post https://forum.fhem.de/index.php/topic,89745.msg932018.html#msg932018
testen, das ist die Minimalkonfiguration in einem Script das bei mir problemlos alles anlegt was ich brauch. Du muss nur aufpassen dass du die bestehende Konfiguration nicht überschreibst sonst funktioniert die aktuelle Konfig nicht mehr über Putty.

edit. die letzte Zeile ist nicht mehr nötig, das ist jetzt im Docker schon drin (ssh-keyscan)

ich habe exakt dein Skript ablaufen lassen. hab die authorized_keys datei gelöscht, hab das Skript nochmals ausgeführt, und natürlich mein eigenen ssh-Key für putty als 2. Zeile wieder eingefügt..
trotzdem kommt unter Portainer die nachricht, das ich ein Password eintippen sollen..
fhem@7ff36a02548d:~$ ssh gateway.docker.internal
The authenticity of host 'gateway.docker.internal (172.27.0.1)' can't be established.
ED25519 key fingerprint is SHA256:yfBgWbH7kLL/xWUDluoAG/jmVdJ9tu5F+iky8lSyID0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gateway.docker.internal' (ED25519) to the list of known hosts.
fhem@gateway.docker.internal's password:


edit: okay mir ist beim start von fhem folgendes aufgefallen:

13. Adding gateway.docker.internal to /etc/hosts ...
/entry.sh: line 376: [: 62.138.238.45: binary operator expected

was hat das zu bedeuten?

kadettilac89

Zitat von: Holzlenkrad am 21 April 2019, 20:24:13
Also im Endeffekt muss ich nach der heutigen Änderung am FHEM Container nur noch den SSH Public Key von FHEM in die Datei mit den autorisierten Keys auf dem Docker Host eintragen? Muss ich nicht noch im Container festlegen, unter welchem Nutzer sich dann das FHEM Modul auf dem Host einloggen soll?

SSH-Aufruf syntax     ssh [-p <port>]<user>@<host> 

Angenommen du willst auf dem Host den User pi nutzen  dann wäre der aufruf      ssh pi@host.docker.internal
Wenn alles richtig eingerichtet ist kommst du ohne Passwort drauf.

kadettilac89

Zitat von: kotaro am 21 April 2019, 20:27:56

Warning: Permanently added 'gateway.docker.internal' (ED25519) to the list of known hosts.


versuche Host       host.docker.internal     nicht gateway.docker.internal auch wenn es auf das selbe Ziel zeigt. Im Docker wird der "host.docker.internal" zu den "known_hosts" hinzugefügt. Gateway.docker.internal ist dort nicht bekannt.

kotaro

Zitat von: kadettilac89 am 21 April 2019, 20:55:14
SSH-Aufruf syntax     ssh [-p <port>]<user>@<host> 

Angenommen du willst auf dem Host den User pi nutzen  dann wäre der aufruf      ssh pi@host.docker.internal
Wenn alles richtig eingerichtet ist kommst du ohne Passwort drauf.

oh man.. da bin ich echt dämlich...
mit pi@gateway.docker.internal funzt es....

kadettilac89

@Loredo, ich glaub ich habe einen Fehler gefunden. Folgendes Verhalten, beim neu Erstellen des Containers funktioniert ssh. Sobald ich aber mit "docker stop fhem" und später mit "docker start fhem" den Container neu starten lasse ist ssh korrupt.

Fehlermeldung:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:IpQswZKmXC4Y+S9QMsIOOmgeNdNm+KOVMFoBAmKzdsw.
Please contact your system administrator.
Add correct host key in /opt/fhem/.ssh/known_hosts to get rid of this message.
Offending RSA key in /opt/fhem/.ssh/known_hosts:3
  remove with:
  ssh-keygen -f "/opt/fhem/.ssh/known_hosts" -R host.docker.internal
ED25519 host key for host.docker.internal has changed and you have requested strict checking.
Host key verification failed.


die known_hosts wird durch docker restart verändert
host.docker.internal ssh-ed25519 -- dieser Eintrag wird gelöscht. Wenn dieser wieder eingefügt wird funktioniert auch SSH wieder

host.docker.internal ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKqC6ot6Kw2IviHcuodBWSbasL80S+a3WGkl/xxxx


known_hosts direkt nach docker up

host.docker.internal ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKqC6ot6Kw2IviHcuodBWSbasL80S+a3WGkl/xxxxxx
[fhem-va.fhem.de]:58824,[288.199.311.302]:58824,[2a01:4f8:10a:806::ff]:58824 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcTyjPHgeBFgxtOmq8aZWOXyJU1K57cGyllhV1YhIbzM8MAjdhLV54vTcDKyoDszjug24luyU+OnCHfgyeo9mFZdM93vJI0LrB8fQWSHXD2tjBhDwxGhxm0ksqlDFP3h3ZFP6HoXzrOP69ucqLSKv8/cfkvpp2kfxRMxHGjsfroNHOHmwUtBy80wh/XNcUikOBqQ7aZiCQWGkdJLHEFWgTT1VQ9P7ZkNe33bG+TICc4LF05DqDIZbD4zqhfKj/oNCgmm+vxQU2GQc/FZBjxO6+qtkcO7Ne0kksI3L2xcEyvkJOm1GUvwB0tDJQSiNfbc6lEzEZx6MOUL3SY00xxxxx
host.docker.internal ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTd/Vr3VF0CUh21PIs8nOQtI//Gd6AVY+FvciR5drWzFdgNrDnUAht+wm+2A8PKBt2mwLrW+FbgAJWj+z/JEXss27X4iwGWDv2hH6fdThRDhuDgbK+zy/u0eEnZjzeo6MfIyYuCyf5TWxvtrKhgzaU+o9vWO+djpiVo7lie5Y+ANHGmoCo4vLg8s/nLr0+NYrlv+qIYjRqPgCd8cDK3k/CY75qkfkpVixy20Ub74M83IK7A0V5fQM4rBDsvbLbnWljWWflbXYdt2c+2d3/Q8cJTPrBt2yyn9LMGfS/T7PMCuABWNpDO/P2RiNvf4k8CMJV8vCKpv3ldzMjxxxxxx
|1|PaBSQYio/NtnXeELAFyzeeNyDzo=|rXfRtghxdRqqhfclxapOlcyvyyM= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKqC6ot6Kw2IviHcuodBWSbasL80S+a3WGkl/xxxx



known_hosts nach docker stop / start

|1|PaBSQYio/NtnXeELAFyzeeNyDzo=|rXfRtghgdRqqhfclxapOlcyvyyM= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKqC6ot6Kw2IviHcuodBWSbasL80S+a3WGkl/xxxxx
[fhem-va.fhem.de]:58824,[288.199.311.302]:58824,[2a01:4f8:10a:806::ff]:58824 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcTyjPHgeBFgxtOmq8aZWOXyJU1K57cGyllhV1YhIbzM8MAjdhLV54vTcDKyoDszjug24luyU+OnCHfgyeo9mFZdM93vJI0LrB8fQWSHXD2tjBhDwxGhxm0ksqlDFP3h3ZFP6HoXzrOP69ucqLSKv8/cfkvpp2kfxRMxHGjsfroNHOHmwUtBy80wh/XNcUikOBqQ7aZiCQWGkdJLHEFWgTT1VQ9P7ZkNe33bG+TICc4LF05DqDIZbD4zqhfKj/oNCgmm+vNQU2GQc/FZBjxO6+qtkcO7Ne0kksI3L2xcEyvkJOm1GUvwB0tDJQSiNfbc6lEzEZx6MOUL3SY00xxxxx
host.docker.internal ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTd/Vr3VF0CUh21PIs8nOQtI//Gd6AVY+FvciR5drWzFdgNrDnUAht+wm+2A8PKBt2mwLrW+FbgAJWj+z/JEXss27X4iwGWDv2hH6fdThRDhuDgbK+zy/u0eEnZjzeo6MfIyYuCyf5TWxvtrKhgzaU+o9vWO+djpiVo7lie5Y+ANHGmoCo4vLg8s/nLr0+NYrlv+qIYjRqPgCd8cDK3k/CY75qkfkpVixy20Ub74M83IK7A0V5fQM4rBDsvbLbnWljWWflbXYdt2c+2d3/Q8cJTPrBt2yyn9LMGfS/T7PMCuABWNpDO/P2RiNvf4k8CMJV8vCKpv3ldzMjcxxxxx

Loredo

Ich denke das konnte ich beheben, Prod Image v1.13.2 baut gerade.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

kadettilac89

Zitat von: Loredo am 22 April 2019, 09:06:14
Ich denke das konnte ich beheben, Prod Image v1.13.2 baut gerade.

funktioniert, danke fürs fixen

kotaro

Was bedeutet die Änderung eigentlich für mich...
muss ich jetzt nach dem pullen des Image noch das Skript mit dem Kopieren des SSH-Keys ausführen? muss ich die Partner bekannt machen, indem ich mich bei Docker einlogge und einmal eine SSH-Verbindung aufbaue? bin da etwas unsicher, was da funktionieren müsste