Hallo,
hat jemand eine elegante Idee, wie mit einem Button (via cmdalias)
a) das manuelle Herunterfahren im Fhem Logfile (auf dem Master RPi) protokolliert wird,
b) auf dem Slave RPi remote und passwortlos eingeloggt wird und dort das System heruntergefahren wird, sowie
c) der Master-RPi ebenfalls dann ein shutdown -h now erfährt?
Bisher scheitere ich an den Berechtigungen.
Unter Raspian shell funktioniert das Herunterfahren des Slave mit dem user pi bereits (also mit Verwendung des publ. Key .
VG
Alex
Zitat von: Homalix99 am 06 Juli 2020, 23:34:54
Hallo,
hat jemand eine elegante Idee, wie mit einem Button (via cmdalias)
a) das manuelle Herunterfahren im Fhem Logfile (auf dem Master RPi) protokolliert wird,
b) auf dem Slave RPi remote und passwortlos eingeloggt wird und dort das System heruntergefahren wird, sowie
c) der Master-RPi ebenfalls dann ein shutdown -h now erfährt?
Bisher scheitere ich an den Berechtigungen.
Unter Raspian shell funktioniert das Herunterfahren des Slave mit dem user pi bereits (also mit Verwendung des publ. Key .
VG
Alex
cmdalias: keine Ahnung
zu a)
Eintrag ins fhem Log z.B.:
Log3(undef, 1, "FHEM WIRD HERUNTERGEFAHREN / ODER WAS AUCH IMMER")
ist allerdings ein Perl-Aufruf, keine Ahnung ob das in cmdalias geht...
b)
again: cmdalias -> keine Ahnung
Aber User
fhem das passwortlose einloggen auf remote system ermöglichen!
Also den ssh key vom user fhem!! (/opt/fhem/.ssh ) (erzeugen) und dann zum remote system transferieren. 1x mit user fhem dort einloggen (wegen ssh-hosts) und nat. muss der dort eingeloggte user (also z.B. pi: pi@remote.host ;) ) natürlich das System auch runterfahren dürfen OHNE Passworteingabe (standard für User pi)...
http://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html
c)
naja, einfach aus fhem heraus "sudo shutdown -h now" (inkl. der Anführungszeichen!) oder "sudo shutdown -hP now" UND: user fhem muss das tun dürfen -> sudoers!
Gruß, Joachim
Ergänzung: Zum Button und cmdalias - so in der Art:
https://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html
Gruß Otto
Vielen Dank, bin aber leider nicht weitergekommen.
Habe nach https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html
für fhem user passwort vergeben, in /etc/passwd dem user fhem eine shell zugewiesen.-
Schlüsselpaar erzeugt und auf den slave mit ssh-copy-id -i ~/.ssh/id_rsa fhem@RPi-Slave kopiert => es wird ein auth..key file angelegt, => okay
drwx------ 2 fhem dialout 4096 Jul 7 18:39 .
drwxrwxrwx 13 fhem dialout 4096 Jul 7 10:37 ..
-rw------- 1 fhem dialout 395 Jul 7 17:55 authorized_keys
-rw-r--r-- 1 fhem dialout 222 Jul 7 18:00 known_hosts
Nur beim Einloggen auf den Slave unter fhem user wird nachwievor ein Passwort verlangt
fhem@RPI_FHEM:~$ ssh -v fhem@RPi-Slave
OpenSSH_7.4p1 Raspbian-10+deb9u7, OpenSSL 1.0.2t 10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to rpi-slave [2003:f6:f70b:e600:f426:f86e:351d:1c86] port 22.
debug1: Connection established.
debug1: identity file /opt/fhem/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /opt/fhem/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /opt/fhem/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /opt/fhem/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /opt/fhem/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /opt/fhem/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /opt/fhem/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /opt/fhem/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4p1 Raspbian-10+deb9u7
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Raspbian-5+deb8u1
debug1: match: OpenSSH_6.7p1 Raspbian-5+deb8u1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to rpi-slave:22 as 'fhem'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:gxsbAyQzHx4CtJ7W2F/oCRYWy1iYVWn40W1DHyG9eF4
debug1: Host 'rpi-slave' is known and matches the ECDSA host key.
debug1: Found key in /opt/fhem/.ssh/known_hosts:1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /opt/fhem/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /opt/fhem/.ssh/id_dsa
debug1: Trying private key: /opt/fhem/.ssh/id_ecdsa
debug1: Trying private key: /opt/fhem/.ssh/id_ed25519
debug1: Next authentication method: password
fhem@rpi-slave's password:
im Auth.log ist folgender Eintrag:
Jul 7 18:44:54 RPi-Slave sudo: fhem : TTY=pts/0 ; PWD=/opt/fhem/.ssh ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/auth.log
Jul 7 18:44:54 RPi-Slave sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Jul 7 18:45:24 RPi-Slave sshd[1142]: Authentication refused: bad ownership or modes for directory /opt/fhem
Die Berechtigungen des users fhem auf dem Slave sollten aber passen:
drwxr-xr-x 4 fhem dialout 4096 Jul 5 2019 scripts
drwx------ 2 fhem dialout 4096 Jul 7 18:39 .ssh
drwxr-xr-x 2 fhem dialout 4096 Oct 10 2016 unused
drwxrwxrwx 8 fhem root 4096 Mar 5 2016 www
fhem@RPi-Slave:~$
Das gibt mir echt Rätsel auf.
Weiß leider nicht weiter.
VG
Alex
Ohje!
Also du willst doch User pi auf dem anderen Rechner sein und NICHT User fhem!?
Also pi@remotehost!
EDIT: das ist ja das schöne! Du kannst auf dem anderen Rechner "sein wer du willst" (gut "darfst" ;) ) EGAL wer du auf dem "lokalen Rechner" bist... :)
Gibt es auf dem remotehost überhaupt einen User fhem!?
Darf sich dieser überhaupt dort einloggen!?
Darf dieser überhaupt das System runterfahren!?
Hast du dich denn als User fhem schon mal als User fhem von der Console als User fhem@remote eingelogged (habe ich ja geschrieben wegen allowedhosts)?!
EDIT: gut das wohl ja, ging schief dazu sind Debugausgaben da... Bei den anderen Befehlen (ssh Key erzeugen und kopieren) wäre es interessanter gewesen die Befehlsfolge inkl. Console bzw. gerade eingeloggter User zu sehen... ;)
EDIT: wobei ich ja immer noch denke, dass es "remote" eher User pi sein sollte...
Unter welchem User hast du denn die ssh Schlüssel erzeugt!?
Welcher User hat dann die ssh Schlüssel kopiert!?
Schön, dass du immer genau den Teil des Terminals weg lässt...
Ich hab man was angehangen...
...vielleicht hilft es...
Gruß, Joachim
ZitatSchlüsselpaar erzeugt und auf den slave mit ssh-copy-id -i ~/.ssh/id_rsa fhem@RPi-Slave kopiert => es wird ein auth..key file angelegt, => okay
Das steht nicht in meiner Anleitung ???
Vielen Dank euch beiden. Funktioniert jetzt.
@ Otto123:
Stimmt, habe die Details nicht beachtet. Das Prinzip ist mir durch die Zeichnung von MadMax-Fhem klar geworden.
Nochmals vielen dank!
VG
Alex
Ja ich muss Joachim mal fragen: Ich glaube die sollte ich in meinen Beitrag einfügen :)
Zitat von: Otto123 am 08 Juli 2020, 20:55:02
Ja ich muss Joachim mal fragen: Ich glaube die sollte ich in meinen Beitrag einfügen :)
Klar!
Wenn ich irgendwann mal nach Leipzig komme, dann nehme ich eine Bratwurst :)
Ich kann (sofern ich's finde) auch die Original-Libreoffice-Datei anhängen/zuschicken...
...falls du was anpassen willst...
Gruß, Joachim
So, gefunden... :)
Gruß, Joachim