Wir führen ein einfaches Bereitstellungsskript remote mit einem Befehl wie aus ssh [email protected] sudo /root/run-chef-client.sh
. Es begann heute zu hängen , weil sshd
wartete immer auf das 10.170.4.11
auch nach sudo
bereits fertig war. Wir haben sshd
im Debug-Modus begonnen und zwei verschiedene Arten von Protokollen erhalten. Das folgende Protokoll ist normal, wenn die Sitzung nicht hängt:
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 23187
debug1: session_exit_message: session 0 channel 0 pid 23187
debug1: session_exit_message: release channel 0
Received disconnect from 10.170.4.6: 11: disconnected by user
Und wenn es hängt, bekommen wir folgendes:
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 24209
debug1: session_exit_message: session 0 channel 0 pid 24209
debug1: session_exit_message: release channel 0
Unser Verständnis ist, dass der Serverprozess auf eine Kommunikation von einer Clientseite wartet und diese niemals erhält. Es ist schwer zu sagen, ob es sich um ein clientseitiges oder ein serverseitiges Problem handelt. Wir haben versucht, sshd
unter zu laufen, strace
aber es ist uns nicht gelungen, weil ein SUID-Bit in sudo
diesem Fall ignoriert wurde. Was sollten wir also noch versuchen, diese Situationen zu debuggen / zu verhindern?