Ja, Du hast recht, hätte das Skript genauer lesen sollen.cbtaste420 schrieb:@nutrix wie kommst Du auf Reboot? Ich verstehe den TE so, dass er nur den Status auf seinen Servern abfragen will.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
cron-job unter Linux Mint
- Ersteller Orion66
- Erstellt am
Das kommt darauf an, was Du machst. Crontab per root sind, wie gesagt, wenn nicht richtig gemacht, eine Sicherheitslücke. Per root funktioniert eben mehr, und man kann hier immer noch ein chmod oder chown hinterher hängen, damit der Benutzer dann mit den Ergebnissen von root ausgeführt was anfangen kann.
Wenn Dein System nicht allzu sicherheitskritisch aufgebaut sein muß, ist ein cronjob per root ok (z.b. Backups). Generell würde ich aber alle Prozesse immer eher Benutzern zuordnen.
Wenn Dein System nicht allzu sicherheitskritisch aufgebaut sein muß, ist ein cronjob per root ok (z.b. Backups). Generell würde ich aber alle Prozesse immer eher Benutzern zuordnen.
foofoobar
Captain
- Registriert
- Dez. 2011
- Beiträge
- 3.708
"-o batchmode=yes" bricht sauber ab und bleibt nicht dumm im prompt stehen.cbtaste420 schrieb:Wirst Du zur Eingabe eines Passworts aufgefordert, egal welches, für den Key oder den Benutzer, wird das Skript mit dieser Meldung abbrechen.
- Registriert
- Jan. 2010
- Beiträge
- 34
Wie kann ich den Aufruf des Scripts so simulieren, wie das der Cronjob macht?
Weil wenn ich das in der Konsole als privat ausführen, erhalte ich kein Fehler.
Leider hat das keine Auswirkung![Traurig :( :(](/forum/styles/smilies/frown.gif)
Weil wenn ich das in der Konsole als privat ausführen, erhalte ich kein Fehler.
Ergänzung ()
Genau das habe ich jetzt gemacht, sowohl als privat (war bereits schon Schlüssel ohne PW) und als root.cbtaste420 schrieb:@Orion66 wie @foofoobar bereits geschrieben hat, solltest Du einen Schlüssel ohne Passwort erstellen und diesen zur Authentifizierung nutzen.
Leider hat das keine Auswirkung
![Traurig :( :(](/forum/styles/smilies/frown.gif)
Zuletzt bearbeitet:
cbtaste420
Lieutenant Pro
- Registriert
- Dez. 2019
- Beiträge
- 710
Wie sieht der Cron-Eintrag aus?Orion66 schrieb:Genau das habe ich jetzt gemacht, sowohl als privat (war bereits schon Schlüssel ohne PW) und als root.
Leider hat das keine Auswirkung![]()
cbtaste420
Lieutenant Pro
- Registriert
- Dez. 2019
- Beiträge
- 710
Okay, eingerichtet für Deinen Benutzer oder Root?
Kannst Du das Skript noch posten?
Kannst Du das Skript noch posten?
- Registriert
- Jan. 2010
- Beiträge
- 34
Für meinen Benutzer "privat". Ich finde den Eintrag unter /var/spool/cron/crontabs/privat
Ergänzung ()
Code:
# Liste der Server-IP-Adressen
servers=("server1.home" "server2.home" "server2.home")
# Sende eine E-Mail mit der Zusammenfassung der Server
email_subject="Server-Reboot: Status"
email_body="Zusammenfassung der Server:\n\n"
# Durchlaufe die Liste der Server
for server in "${servers[@]}"; do
reboot_status=$(ssh privat@$server "cat /var/run/reboot-required 2> /dev/null")
if [ -n "$reboot_status" ]; then
server_status="Reboot ausstehend !!!"
else
server_status="kein Reboot nötig"
fi
email_body+="$server - $server_status\n"
echo "$server - $server_status"
done
# eMail verschicken
echo -e "$email_body" | mail -s "$email_subject" mich@meine.domain
Zuletzt bearbeitet:
Moin, hab mal was gegoogelt. Weil cron nicht unter einer normalen Shell läuft, sind häufig vorausgesetzte Umgebungsvariablen nicht gesezt.
Versuche mal, den -i Parameter zum ssh hinzuzügen und explizit auf deine id_rsa zu verweisen
Es scheint da auch Probleme mit der SSH_AUTH_SOCK Umgebungsvariable zu geben, die unter Cron wohl nicht immer gesetzt ist, aber vom ssh-agent benötigt wird.
Alternativ gibt es für so Fälle auch noch ssh-cron, Google sagt, das ist unter Ubuntu verfügbar ...
Und noch eine Problemstelle: Hast du ein Passwort auf deinem Key? Das kann wohl auch zu Problemen führen, da unter Cron der Keyring nicht verfügbar / geladen ist, im Gegensatz zu einem Terminal in deiner DE ...
Links:
https://superuser.com/questions/463540/ssh-permission-denied-only-in-cron-job
https://superuser.com/questions/264...but-runs-succesfully-when-run-from-command-li
https://manpages.ubuntu.com/manpages/impish/man1/ssh-cron.1.html
Versuche mal, den -i Parameter zum ssh hinzuzügen und explizit auf deine id_rsa zu verweisen
Bash:
ssh -i /path/to/.ssh/...
Alternativ gibt es für so Fälle auch noch ssh-cron, Google sagt, das ist unter Ubuntu verfügbar ...
Und noch eine Problemstelle: Hast du ein Passwort auf deinem Key? Das kann wohl auch zu Problemen führen, da unter Cron der Keyring nicht verfügbar / geladen ist, im Gegensatz zu einem Terminal in deiner DE ...
Links:
https://superuser.com/questions/463540/ssh-permission-denied-only-in-cron-job
https://superuser.com/questions/264...but-runs-succesfully-when-run-from-command-li
https://manpages.ubuntu.com/manpages/impish/man1/ssh-cron.1.html
Art Vandelay
Lieutenant
- Registriert
- Apr. 2020
- Beiträge
- 807
Ähnliche Probleme wie hier von @frabron beschrieben hatte ich auch schon mal. Verursacht durch falsche Pfadangaben im Script. Daher immer absolute Pfade und keine relativen Pfade verwenden, da der Verzeichniskontext bei einem im cron ausgeführten Job ein anderer ist.
Aber ich kann hier im Script keine deartigen Probleme sehen.
Aber ich kann hier im Script keine deartigen Probleme sehen.
- Registriert
- Jan. 2010
- Beiträge
- 34
Das hat nicht geholfen.frabron schrieb:Versuche mal, den -i Parameter zum ssh hinzuzügen und explizit auf deine id_rsa zu verweisen
Habe nun alle keys gelöscht, neu erstellt (ohne Passwort) und neu verteilt.
Egal was ich versuch, ich kriegs einfach nicht hin
![Heul :heul: :heul:](/forum/styles/smilies/heul.gif)
Ich glauch, ich sehe den Wald vor lauter Bäumen nicht mehr!
Kopf hoch, ssh und Konsorten ist ein schwieriges Thema, und cron hat auch schon vielen graue Haare beschert.
Hab grade gesehen, du leitest die Ausgabe von dem ssh-Kommando nach /var/log um, hast du als normaler Benutzer da überhaupt Rechte für (denke eher nicht)? Wenn nicht, vielleicht kommt das Permission denied auch daher ... mal ins Home-Verzeichnis loggen?
Hab grade gesehen, du leitest die Ausgabe von dem ssh-Kommando nach /var/log um, hast du als normaler Benutzer da überhaupt Rechte für (denke eher nicht)? Wenn nicht, vielleicht kommt das Permission denied auch daher ... mal ins Home-Verzeichnis loggen?
- Registriert
- Jan. 2010
- Beiträge
- 34
Danke. Ja, mit diesem Thema habe ich schon einige Stunden in den Sand gesetzt. Aber man lernt dabei auch was.frabron schrieb:Kopf hoch, ssh und Konsorten ist ein schwieriges Thema, und cron hat auch schon vielen graue Haare beschert.
Das war eigentlich nicht die Idee, sondern ein Zwischenstand meiner vielen Versuche. Soll eigentlich nach /homefrabron schrieb:du leitest die Ausgabe von dem ssh-Kommando nach /var/log
Code:
45 19 * * * privat /home/privat/RebootCheck.sh >> /home/privat/cron.log 2>&1
An sich ist es nicht schwierig.frabron schrieb:Kopf hoch, ssh und Konsorten ist ein schwieriges Thema, und cron hat auch schon vielen graue Haare beschert.
Ergänzung ()
Ist das .ssh Verzeichnis auch nur für den Benutzer gesetzt?SirKhan schrieb:Der Public-Key des neuen Schlüssels muss in die.ssh/authorized_keys
des Zielnutzers.
Also wenn man sich mit privat@servername verbindet, dann bei servername nach/home/privat/.ssh/authorized_keys
chmod 700 /home/privat/.ssh
Sind alle Dateien in .ssh auf nur lesen und schreiben gesetzt?
chmod 600 /home/privat/.ssh/*
Ergänzung ()
Wo ist denn das Shebang geblieben?Orion66 schrieb:Für meinen Benutzer "privat". Ich finde den Eintrag unter /var/spool/cron/crontabs/privat
Ergänzung ()
Code:# Liste der Server-IP-Adressen :
#!/bin/bash
oder #!/bin/sh
Code:
#!/bin/bash
# Liste der Server-IP-Adressen
:
Zuletzt bearbeitet:
Außer, wenn es schwierig ist - wie hier z.B. 😁nutrix schrieb:An sich ist es nicht schwierig.
Ich möchte nochmal, wie von mir weiter oben erwähnt, auf die SSH_AUTH_SOCK Umgebungsvariable verweisen. Wenn du im Terminal
Bash:
env | grep SSH_AUTH_SOCK
eingibst, sollte etwas in dieser Form wie bei mir herauskommen
Bash:
frank@schnipsel ~> env | grep SSH
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
Und ich wette, dass diese Information im Cronjob nicht zur Verfügung steht. Sie ist aber wohl eine wichtige Information für den ssh-agent, der zentral für die Schlüsselverwaltung zuständig ist.
Schau dir diesen Post hier mal dazu an: https://superuser.com/a/1457098
Mehr Nerdshit: https://smallstep.com/blog/ssh-agent-explained/
Ich hab ja beruflich viel mit Linux zu tun, aber sowas ist mir bisher auch noch nicht untergekommen, daß eine fehlende
SSH_AUTH_SOCK
Umgebungsvariable fehlen soll oder fehlte und damit die Ursache des Problems war. Aber probieren hilft über studieren.- Registriert
- Jan. 2010
- Beiträge
- 34
Auf meinen Zielserver sieht das so aus:nutrix schrieb:Ist das .ssh Verzeichnis auch nur für den Benutzer gesetzt?
chmod 700 /home/privat/.ssh
Code:
drwx------ 2 privat privat 4096 Aug 20 10:07 .ssh
und so:nutrix schrieb:Sind alle Dateien in .ssh auf nur lesen und schreiben gesetzt?
chmod 600 /home/privat/.ssh/*
Code:
-rw------- 1 privat privat 277 Aug 16 20:57 authorized_keys
Ich habe anfänglich nur den relevanten Teil des Scripts gepostet, weil das Script ja funktioniert wenn ich es direkt ohne Probleme und Login-Aufforderung ausführen kann. Der Sehbang ist vorhanden.nutrix schrieb:Wo ist denn das Shebang geblieben?
Im Post #29 habe ich vergesssen die erste Zeile mitzukopieren
![Augen rollen :rolleyes: :rolleyes:](/forum/styles/smilies/rolleyes.gif)
Ich bekomme:frabron schrieb:Wenn du im Terminal
Bash:env | grep SSH_AUTH_SOCK
Code:
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
Ein übler Fehler sind Schmutzzeichen in der authorized_keys, die bei der Übertragung des public keys durch copy&paste entstehen.
Kopiere mal bitte direkt den id_rsa.pub in das Zielverzeichnis unter .ssh, und mache danan
und teste nochmal die ssh-Verbindung.
Kopiere mal bitte direkt den id_rsa.pub in das Zielverzeichnis unter .ssh, und mache danan
Code:
cat id_rsa.pub > authorized_keys
- Registriert
- Jan. 2010
- Beiträge
- 34
Macht leider kein Unterschied.nutrix schrieb:Kopiere mal bitte direkt den id_rsa.pub in das Zielverzeichnis unter .ssh, und mache danan
Ich habe grundsätzlich mit den betreffenden Servern kein Problem mit ssh & key eine Verbindung herzustellen. Ich brauche das sehr viel um Ansible-Playbook auszuführen oder direkt mit den Servern via ssh zu arbeiten.
Somit würde ich meine ssh & key Konfiguration eher ausschliessen.
Ich schätze das Problem muss in der Art und Weise wie cron auf diese Server zugreift liegen
Ähnliche Themen
- Antworten
- 22
- Aufrufe
- 711
- Antworten
- 39
- Aufrufe
- 1.193