chroot("/run/sshd"): No such file or directory

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

chroot("/run/sshd"): No such file or directory

Marc Haber-14
Hallo,

das hier hab ich schon als #934663 eingereicht, aber es tritt
inzwischen immer häufiger auf und es nervt.

Ich verwende ssh mit systemd socket activation (dann muss nur ein
Daemon funktionieren damit ich mich noch einloggen kann). Auf dem
einzigen System (buster=, das noch password authentication
eingeschaltet hat, kommt ziemlich viel Grundrauschen an
Bruteforceversuchen rein. Das ist aber nicht das Thema hier, dagegen
gibt es Maßnahmen und Logfilter.

Mehrmals pro Stunde finde ich aber den Logeintrag

|sshd[]: fatal: chroot("/run/sshd"): No such file or directory [preauth]

obwohl /run/sshd existiert und der Logeintrag auch nicht für jeden
Verbindungsversuch kommt.

Hat jemand eine Idee, was da sein könnte? Wird /run/sshd etwa vom
terminierenden sshd abgeräumt und irgendwie dann wieder neu angelegt?

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Reply | Threaded
Open this post in threaded view
|

Re: chroot("/run/sshd"): No such file or directory

Sven Hartge-5
Marc Haber <[hidden email]> wrote:

> Mehrmals pro Stunde finde ich aber den Logeintrag

> |sshd[]: fatal: chroot("/run/sshd"): No such file or directory [preauth]

> obwohl /run/sshd existiert und der Logeintrag auch nicht für jeden
> Verbindungsversuch kommt.

> Hat jemand eine Idee, was da sein könnte? Wird /run/sshd etwa vom
> terminierenden sshd abgeräumt und irgendwie dann wieder neu angelegt?

Ja. ssh.service, welche von ssh.socket getriggert wird, enthält

  RuntimeDirectory=sshd
  RuntimeDirectoryMode=0755

womit automatisch unterhalb von /run das Verzeichnis "sshd" mit den
Rechten 0755 angelegt und auch wieder entfernt wird, siehe auch
systemd.exec(5):

,----
| In case of RuntimeDirectory= the lowest subdirectories are removed when
| the unit is stopped.
`----

Scheinbar gibt es da eine Race-Condition zwischen dem Entfernen durch
den gerade sterbenden ssh.service und einem gerade neu startenden.

Als Workaround kannst du "RuntimeDirectoryPreserve=yes" via Override
setzen, das verhindert das Löschen.

S!

--
Sigmentation fault. Core dumped.

Reply | Threaded
Open this post in threaded view
|

Re: chroot("/run/sshd"): No such file or directory

Christian Knoke
In reply to this post by Marc Haber-14
Marc Haber schrieb am 18. Aug um 10:02 Uhr:

> das hier hab ich schon als #934663 eingereicht, aber es tritt
> inzwischen immer häufiger auf und es nervt.


> Mehrmals pro Stunde finde ich aber den Logeintrag
>
> |sshd[]: fatal: chroot("/run/sshd"): No such file or directory [preauth]
>
> obwohl /run/sshd existiert und der Logeintrag auch nicht für jeden
> Verbindungsversuch kommt.
>
> Hat jemand eine Idee, was da sein könnte? Wird /run/sshd etwa vom
> terminierenden sshd abgeräumt und irgendwie dann wieder neu angelegt?

Müsste man das nicht am Zeitstempel erkennen können:

~$ ls -ldc /run/user/
drwxr-xr-x 3 root root 60 Aug 18 12:23 /run/user/

Gruß
Christian

--
http://cknoke.de

Reply | Threaded
Open this post in threaded view
|

Re: chroot("/run/sshd"): No such file or directory

Marc Haber-14
In reply to this post by Sven Hartge-5
On Sun, 18 Aug 2019 11:17:45 +0200, Sven Hartge <[hidden email]>
wrote:

>Marc Haber <[hidden email]> wrote:
>> Mehrmals pro Stunde finde ich aber den Logeintrag
>
>> |sshd[]: fatal: chroot("/run/sshd"): No such file or directory [preauth]
>
>> obwohl /run/sshd existiert und der Logeintrag auch nicht für jeden
>> Verbindungsversuch kommt.
>
>> Hat jemand eine Idee, was da sein könnte? Wird /run/sshd etwa vom
>> terminierenden sshd abgeräumt und irgendwie dann wieder neu angelegt?
>
>Ja. ssh.service, welche von ssh.socket getriggert wird, enthält
>
>  RuntimeDirectory=sshd
>  RuntimeDirectoryMode=0755
>
>womit automatisch unterhalb von /run das Verzeichnis "sshd" mit den
>Rechten 0755 angelegt und auch wieder entfernt wird, siehe auch
>systemd.exec(5):
>
>,----
>| In case of RuntimeDirectory= the lowest subdirectories are removed when
>| the unit is stopped.
>`----
>
>Scheinbar gibt es da eine Race-Condition zwischen dem Entfernen durch
>den gerade sterbenden ssh.service und einem gerade neu startenden.
>
>Als Workaround kannst du "RuntimeDirectoryPreserve=yes" via Override
>setzen, das verhindert das Löschen.

Das hat's tatsächlich gebracht. #934663 updated.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834