Auf einem meiner Server ist mir bei SSH-Anmeldungen eine Verzögerung aufgefallen.
Beim Verbinden mit den Optionen ssh -vvv tritt die Verzögerung bei auf debug1: Entering interactive session.
Auszug der Verbindung:
debug1: Authentication succeeded (publickey).
Authenticated to IP_REDACTED ([IP_REDACTED]:22).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
Mit der hier beschriebenen Methode habe ich eine Strace-Ausgabe generiert und festgestellt, dass die Zeile 14:09:53.676004 ppoll([{fd=5, events=POLLIN}], 1, {24, 999645000}, NULL, 8) = 1 ([{fd=5, revents=POLLIN}], left {0, 0}) <25.020764>
25 Sekunden dauert.
Auszug aus dem Strace Output:
14:09:53.675567 clock_gettime(CLOCK_MONOTONIC, {4662549, 999741404}) = 0 <0.000024>
14:09:53.675651 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"l\4\1\1\n\0\0\0\2\0\0\0\215\0\0\0\1\1o\0\25\0\0\0", 24}], msg_controll
en=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24 <0.000024>
14:09:53.675744 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0"..., 146}], msg_controllen
=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 146 <0.000025>
14:09:53.675842 recvmsg(5, 0x7ffe0ff1dfa0, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailab
le) <0.000023>
14:09:53.675925 clock_gettime(CLOCK_MONOTONIC, {4662550, 96075}) = 0 <0.000024>
14:09:53.676004 ppoll([{fd=5, events=POLLIN}], 1, {24, 999645000}, NULL, 8) = 1 ([{fd=5, revents=POLLIN}], left {0, 0}) <25.020764>
14:10:18.696865 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"l\3\1\0013\0\0\0\3\0\0\0m\0\0\0\6\1s\0\5\0\0\0", 24}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24 <0.000017>
14:10:18.696944 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{":1.10\0\0\0\4\1s\0#\0\0\0org.freedesktop."..., 155}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 155 <0.000018>
Ich habe einen Eintrag in den Authentifizierungsprotokollen zum relevanten Zeitpunkt bemerkt:
Jul 21 14:10:18 click sshd[8165]: pam_systemd(sshd:session): Failed to create session: Activation of org.freedesktop.login1 timed out
Ich weiß nicht genug darüber, wonach abgefragt werden soll und warum es auf diesem bestimmten Server jetzt 25 Sekunden dauert.
Der journalctl -u systemd-logind
Befehl zeigt
Jul 20 11:33:06 click systemd-logind[19415]: Failed to abandon session scope: Transport endpoint is not connected
Jul 21 05:04:54 myhost systemd[1]: Started Login Service.
Jul 21 12:15:30 myhost systemd[1]: Started Login Service.
Jul 21 12:17:04 myhost systemd[1]: Started Login Service.
Jul 21 12:49:55 myhost systemd[1]: Started Login Service.
Jul 21 13:57:05 myhost systemd[1]: Started Login Service.
Jul 21 13:58:49 myhost systemd[1]: Started Login Service.
Jul 21 14:01:55 myhost systemd[1]: Started Login Service.
Jul 21 14:08:32 myhost systemd[1]: Started Login Service.
Jul 21 14:09:53 myhost systemd[1]: Started Login Service.
Jul 21 14:19:08 myhost systemd[1]: Started Login Service.
Jul 21 14:21:26 myhost systemd[1]: Started Login Service.
Jul 21 14:22:37 myhost systemd[1]: Started Login Service.
Jul 21 14:25:20 myhost systemd[1]: Started Login Service.
Jul 21 14:30:27 myhost systemd[1]: Started Login Service.
Jul 21 15:02:56 myhost systemd[1]: Started Login Service.
Das Ausgeben des Befehls systemctl restart systemd-logind.service
behebt es ( vorerst wahrscheinlich).
Was ist die Activation of org.freedesktop.login1
Erwähnung? Kann ich verhindern, dass ich logind in Zukunft neu starten muss? Ich gehe davon aus, dass dieses Problem mit der Zeit auch bei den anderen von mir verwalteten Servern auftreten wird.
Ich habe gerade bemerkt, dass dies auf einem anderen Server beginnt.
$ sudo service systemd-logind status
● systemd-logind.service - Login Service
Loaded: loaded (/lib/systemd/system/systemd-logind.service; static)
Active: active (running) since Tue 2015-06-16 14:10:57 BST; 1 months 12 days ago
Docs: man:systemd-logind.service(8)
man:logind.conf(5)
http://www.freedesktop.org/wiki/Software/systemd/logind
http://www.freedesktop.org/wiki/Software/systemd/multiseat
Main PID: 1701 (systemd-logind)
Status: "Processing requests..."
CGroup: /system.slice/systemd-logind.service
└─1701 /lib/systemd/systemd-logind
Jul 28 13:16:21 myhost systemd[1]: Started Login Service.
Jul 28 13:16:47 myhost systemd[1]: Started Login Service.
Jul 28 16:09:23 myhost systemd[1]: Started Login Service.
Jul 28 16:09:49 myhost systemd[1]: Started Login Service.
Jul 28 16:10:15 myhost systemd[1]: Started Login Service.
Jul 28 16:10:41 myhost systemd[1]: Started Login Service.
Jul 28 22:50:19 myhost systemd[1]: Started Login Service.
Jul 29 05:00:15 myhost systemd[1]: Started Login Service.
Jul 29 11:00:20 myhost systemd[1]: Started Login Service.
Jul 29 11:09:56 myhost systemd[1]: Started Login Service.
EDIT - erweiterte journalctl
Ausgabe.
EDIT2 - Systemd-Logind-Status hinzugefügt, wie in Kommentaren vorgeschlagen, wenn dies auf einem anderen Server gestartet wird.
UPDATE - Dies geschieht allmählich auf den übrigen Jessie-Servern. Bin ich der einzige, der das erlebt? Es muss außer dem Neustart von systemd-logind ein Fix geben. Hat jemand irgendwelche Gedanken?
Es gibt einen Debian-Fehlerbericht zu dieser 770135 .
systemcts status systemd-logind
vor dem Neustart zu überprüfen, um festzustellen, was daran falsch war (beendet, fehlgeschlagen, was auch immer).ppoll
ist nur ein Vermittler, der auf die Antwort von systemd wartet, Sie können es also nicht beschuldigen.systemcts
Befehlsystemctl
natürlichjournalctl -u systemd-logind
Antworten:
Dies geschieht, wenn dbus neu gestartet wird, systemd-logind jedoch nicht neu gestartet wird. Mach einfach folgendes:
Die Lösung ist von hier: https://major.io/2015/07/27/very-slow-ssh-logins-on-fedora-22/
quelle
Verwenden von:
löst das problem nur vorübergehend.
Eine Problemumgehung besteht darin, alle
.scope
Dateien aus einem Cron-Job zu entfernen , wie hier angegeben .Der dazugehörige systemd-Fehlerbericht ist hier: Durchsickern von Bereichseinheiten, die "systemctl list-unit-files" verlangsamen und Anmeldungen verzögern .
Es scheint tatsächlich ein dbus-Fehler zu sein: Unix fd in-flight counting broken, der in der dbus-Version 1.11.10 behoben wurde
Um diesen Fehler dauerhaft zu beheben, müssen Sie nur warten, bis diese Version von dbus in Ihrer Distribution angezeigt wird. Derzeit ist Debian Stretch bei dbus 1.10.18, Ubuntu 17.04 (Zesty) bei 1.10.10, CentOS 7 bei dbus 1.6.12.
quelle