Hauptmenü

SSH login without password

Begonnen von Wolfgang Hochweller, 15 Dezember 2017, 23:23:12

Vorheriges Thema - Nächstes Thema

Wolfgang Hochweller

Wie mache ich das fuer den user fhem  ( Ubuntu ) ?
Ich weiss, wie das fuer mich selbst geht, aber fuer den user fhem ?
Brauchen tut man das z.B. im Hyperion Modul, wenn Hyperion auf einem Remotesystem laeuft, etwa auf dem Mediaplayer im Wohnzimmer.

DeeSPe

Den Ordner "~/.ssh" nach "/opt/fhem" kopieren und Rechte anpassen.

sudo cp ~/.ssh /opt/fhem
sudo chown -R fhem:dialout /opt/fhem/.ssh


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wolfgang Hochweller


Wolfgang Hochweller

Aber noch nicht so ganz .....
Nach Kopieren und Anpassen der Rechte bekomme ich :

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password,keyboard-interactive).

Ich habe getestet, dass der User fhem sich ueber ssh passwortlos einloggen kann.
Allerdings scheint es einen Unterschied zu geben zwischen dem interaktiven Einloggen aus der Shell heraus und dem Einloggen im Programm, daher obige Fehlermeldungen.
Was kann ich tun ?

DeeSPe

FHEM läuft auch unter dem User fhem?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Gasmast3r

#5
hy so habe ich das gemacht


su fhem

ssh-keygen -t rsa -b 4096

sudo  sed -i -e 's/fhem:.*/fhem:x:999:20::\/opt\/fhem:\/bin\/bash/' /etc/passwd

sudo cp /etc/passwd /etc/passwd.sav

ssh-copy-id -i ~/.ssh/id_rsa user@ip

( su -c 'ssh user@ip' -s /bin/bash fhem (als root user))


Wolfgang Hochweller

Ja, FHEM laeuft unter fhem.
Es geht ja auch, interaktiv.
Die letzte Anleitung erfordert aber noch mehr Eingriffe   ...
su fhem         geht aber nur, wenn man vorher ein ( neues ) Passwort gesetzt hat.
sudo su fhem     funktioniert, aber
sudo  sed -i -e 's/fhem:.*/fhem:x:999:20::\/opt\/fhem:\/bin\/bash/' /etc/passwd    erfordert wieder das Passwort.

Bis jetzt hat mich das fhem Passwort noch nie interessieren muessen.
Wenn es nicht anders geht, kann ich das natuerlich neu setzen.

CoolTux

su = switch user

Der su Befehl beinhaltet das absetzen kompletter Befehlsketten mit dem Rechtekontext eines anderen Users. Als root ausgeführt muss man nicht mal das Passwort des Users haben was ja auch Sinn macht bei Servicekontos.

su -c 'ls -l' -s /bin/bash fhem

Führt den ls Befehl im Rechtekontext vom User fhem aus und verwendet als Shell /bin/bash

Auf die Art kann man die Daten entsprechend kopieren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DeeSPe

Zitat von: howi42 am 18 Dezember 2017, 19:42:10
Ja, FHEM laeuft unter fhem.
Es geht ja auch, interaktiv.
Die letzte Anleitung erfordert aber noch mehr Eingriffe   ...
su fhem         geht aber nur, wenn man vorher ein ( neues ) Passwort gesetzt hat.
sudo su fhem     funktioniert, aber
sudo  sed -i -e 's/fhem:.*/fhem:x:999:20::\/opt\/fhem:\/bin\/bash/' /etc/passwd    erfordert wieder das Passwort.

Bis jetzt hat mich das fhem Passwort noch nie interessieren muessen.
Wenn es nicht anders geht, kann ich das natuerlich neu setzen.

Es muss kein Passwort gesetzt werden!

sudo su
und
su - fhem
sollten reichen.

Oder CoolTux' Version.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

CoolTux

ssh-copy-id -i ~/.ssh/id_rsa user@ip

Das wäre eigentlich der zu bevorzugende Weg der Schlüsselverteilung. Scheint aber wohl nicht immer zu gehen.
Bei meinem SLES12 Ingenieur Examen am Freitag konnte ich zwar den Schlüssel verteilen aber der User konnte sich nicht verbinden. Am Ende half nur die gute alte Methode per Copy und Paste des Inhalt der Schlüsseldatei rüber zu bringen  ::)
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Hallo Jungs,

Ich lese hier interessiert mit und fand die erste Version von Dan beeindruckend.  :D
Da es aber dann doch noch mehr Beiträge gab steure ich gerne noch meine Variante bei, die ist fast Rückstandsfrei:  ;)
sudo cp /etc/passwd /etc/passwd.sav
sudo  sed -i -e 's/fhem:.*/fhem:x:999:20::\/opt\/fhem:\/bin\/bash/' /etc/passwd
sudo passwd fhem             # Passwort vergeben und bestätigen
su fhem                      # Als fhem einloggen, es startet eine neue session!
ssh-keygen -t rsa            # Speichert automatisch in /opt/fhem/
ssh-copy-id -i ~/.ssh/id_rsa <user>@<remote-system> # gleich den angebotenen Test machen
ssh <user>@<remote-system>   # es startet eine neue session!
exit                         # aus der ssh Test session vom Remotehost!
exit                         # aus der Anmeldung von fhem! 
sudo cp /etc/passwd.sav /etc/passwd


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wolfgang Hochweller

Danke,
aber meine Frage bleibt noch offen :

Wieso funktioniert es mit dem User fhem von einem Terminal, aber nicht aus dem Programm heraus.

Nachdem ich die meine eigenen Keys nach /opt/fhem/.ssh kopiert und angepasst habe,
kann ich ohne Probleme im Terminal mit dem Kommando

sudo su fhem

zum User fhem werden.
Ein nachfolgendes

cd

schickt mich nach /opt/fhem, dem Homedirectory von fhem, alles gut.

Mit

ssh root@ip

lande ich dann ohne Passwort auf dem Zielsystem.

Aber nicht aus dem Programm heraus.

Otto123

Ich setze z.B. sowas direkt aus FHEM (auf einem Pi3) ab:
"ssh otto@openmediavault sudo poweroff"
Funktioniert ohne jeden Fehler und schaltet meine NAS aus.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wolfgang Hochweller

#13
Danke, bin  gar nicht mehr sicher, ob die Fehlermeldungen ueberhaupt Sinn machen.
Es geht ja alles, und ich kann Hyperion auf dem RemoteSystem ohne Probleme mit FHEM bedienen.

Ich habe das mal mit einer vergleichbaren Windows-Version gecheckt; da geht das ohne Meldungen.
Denke , wir koennen das abschliessen.