Czy próbowałeś wysyła sygnał rozłączenia: kill -HUP <PID of sshd>? Według man sshd: sshd rereads its configuration file when it receives a hangup signal, SIGHUP. (Możesz znaleźć PID sshdz ps -ef|grep sshd. Jeśli jest więcej niż jeden sshdproces, wyślij je HUPdo wszystkich.)
jaume
(zobacz moją ostatnią edycję)
kjo
6
Tak, masz rację, jeśli HUP sshdproces, który ma otwarte połączenie, zostanie sshdzakończony. Jednak wysłanie sygnału HUP do głównego sshd, czyli do rodzica, sshdktóry prosi nowego demona dla każdego połączenia przychodzącego, przyniesie pożądany efekt. Jednak w systemie OS X nie ma elementu głównego sshd: sshduruchamiany jest launchdza launchproxypomocą opcji -i, która informuje sshd, że jest uruchamiany inetdi uruchamiany na żądanie, gdy launchdotrzyma żądanie. Dzięki tej konfiguracji każde połączenie SSH jest świeżo uruchamiane i sshdkonfigurowane przy użyciu najnowszej wersji pliku konfiguracyjnego.
jaume
Odpowiedzi:
5
sshd nie „ponownie czyta” swojego pliku konfiguracyjnego, uruchamia się ponownie (patrz man sshd (8)), jednak nie powinien zabijać podrzędnych / połączeń, jeśli wysłałeś SIGHUP do ich wszystkich. Właśnie wtedy mówimy o sshd, który łączy się z portem 22, jak w „zwykłym” systemie Linux / FreeBSD / etc. [istnieją wyjątki i powody, dla których należy kierować się ścieżką typu MacOSX]
JEDNAK MacOSX został uruchomiony jako ten, który nasłuchuje i obsługuje port 22 (z mojego komputera 10.10.4):
Jest uruchamiany, co może wymagać ponownego uruchomienia na MacOSX lub powiedzenia o różnych portach nasłuchiwania dla sshd, ponieważ uruchomi się pojawi się nowy sshd dla każdego przychodzącego połączenia portu 22.
Przekazałem ssh do routera iz powrotem, aby zademonstrować problem, a zauważysz, że oba procesy są już „własnością”. Porównaj to z systemem Linux (mój router), w którym zauważysz trzeci „prawdziwy” sshd, którego właścicielem jest root:
kill -HUP <PID of sshd>
? Wedługman sshd
:sshd rereads its configuration file when it receives a hangup signal, SIGHUP
. (Możesz znaleźć PIDsshd
zps -ef|grep sshd
. Jeśli jest więcej niż jedensshd
proces, wyślij jeHUP
do wszystkich.)sshd
proces, który ma otwarte połączenie, zostaniesshd
zakończony. Jednak wysłanie sygnału HUP do głównegosshd
, czyli do rodzica,sshd
który prosi nowego demona dla każdego połączenia przychodzącego, przyniesie pożądany efekt. Jednak w systemie OS X nie ma elementu głównegosshd
:sshd
uruchamiany jestlaunchd
zalaunchproxy
pomocą opcji-i
, która informujesshd
, że jest uruchamianyinetd
i uruchamiany na żądanie, gdylaunchd
otrzyma żądanie. Dzięki tej konfiguracji każde połączenie SSH jest świeżo uruchamiane isshd
konfigurowane przy użyciu najnowszej wersji pliku konfiguracyjnego.Odpowiedzi:
sshd nie „ponownie czyta” swojego pliku konfiguracyjnego, uruchamia się ponownie (patrz man sshd (8)), jednak nie powinien zabijać podrzędnych / połączeń, jeśli wysłałeś SIGHUP do ich wszystkich. Właśnie wtedy mówimy o sshd, który łączy się z portem 22, jak w „zwykłym” systemie Linux / FreeBSD / etc. [istnieją wyjątki i powody, dla których należy kierować się ścieżką typu MacOSX]
JEDNAK MacOSX został uruchomiony jako ten, który nasłuchuje i obsługuje port 22 (z mojego komputera 10.10.4):
Jest uruchamiany, co może wymagać ponownego uruchomienia na MacOSX lub powiedzenia o różnych portach nasłuchiwania dla sshd, ponieważ uruchomi się pojawi się nowy sshd dla każdego przychodzącego połączenia portu 22.
sprawdź następujące:
Przekazałem ssh do routera iz powrotem, aby zademonstrować problem, a zauważysz, że oba procesy są już „własnością”. Porównaj to z systemem Linux (mój router), w którym zauważysz trzeci „prawdziwy” sshd, którego właścicielem jest root:
źródło
Następująca linia najpierw sprawdza konfigurację i pobiera PID głównego procesu zachowując wszystkie pozostałe (testowane w Linux, zsh):
źródło
sshd
procesu.Po prostu:
źródło
sshd
procesu.