Вы пробовали отправки зависания сигнала: kill -HUP <PID of sshd>? По man sshd: sshd rereads its configuration file when it receives a hangup signal, SIGHUP. (Вы можете найти PID sshdс помощью ps -ef|grep sshd. Если существует более одного sshdпроцесса, отправьте HUPвсем им.)
jaume
(см. мое последнее редактирование)
kjo
6
Да, вы правы, если вы HUP sshdпроцесс, который имеет открытое соединение, sshdзавершается. Однако отправка сигнала HUP на главный сервер sshd, то есть на родительский sshdузел, который разветвляет нового демона для каждого входящего соединения, будет иметь желаемый эффект. В OS X, однако, нет main sshd: sshdзапускается с launchdпомощью launchproxyопции -i, которая сообщает, sshdчто запускается inetdи запускается по требованию, когда launchdполучает запрос. При такой настройке каждое SSH-соединение получает только что sshdнастроенную новую версию своего конфигурационного файла.
Jaume
Ответы:
5
sshd не «перечитывает» его файл конфигурации, он перезапускается сам (см. man sshd (8)), однако он не должен убивать дочерние элементы / соединения, если вы отправили SIGHUP РОДИТЕЛЯМ их всех. Именно тогда вы говорите о sshd, который связывается с портом 22, как в «обычном» случае с Linux / FreeBSD / etc. [существуют исключения и причины сисадмина, по которым следует следовать маршруту типа MacOSX]
ОДНАКО MacOSX запускается как тот, который слушает и обрабатывает порт 22 (с моей машины 10.10.4):
Он запускается, возможно, потребуется «перезапустить» в macosx или сообщить о разных портах для прослушивания sshd, так как launchd будет порождать новый sshd для каждого входящего соединения через порт 22.
Я отправил ssh'd на свой маршрутизатор и обратно, чтобы продемонстрировать проблему, и вы заметите, что эти два процесса уже "принадлежат" мне. Сравните это с системой Linux (мой рутер), где вы заметите третий «настоящий» sshd, принадлежащий root:
kill -HUP <PID of sshd>
? Поman sshd
:sshd rereads its configuration file when it receives a hangup signal, SIGHUP
. (Вы можете найти PIDsshd
с помощьюps -ef|grep sshd
. Если существует более одногоsshd
процесса, отправьтеHUP
всем им.)sshd
процесс, который имеет открытое соединение,sshd
завершается. Однако отправка сигнала HUP на главный серверsshd
, то есть на родительскийsshd
узел, который разветвляет нового демона для каждого входящего соединения, будет иметь желаемый эффект. В OS X, однако, нет mainsshd
:sshd
запускается сlaunchd
помощьюlaunchproxy
опции-i
, которая сообщает,sshd
что запускаетсяinetd
и запускается по требованию, когдаlaunchd
получает запрос. При такой настройке каждое SSH-соединение получает только чтоsshd
настроенную новую версию своего конфигурационного файла.Ответы:
sshd не «перечитывает» его файл конфигурации, он перезапускается сам (см. man sshd (8)), однако он не должен убивать дочерние элементы / соединения, если вы отправили SIGHUP РОДИТЕЛЯМ их всех. Именно тогда вы говорите о sshd, который связывается с портом 22, как в «обычном» случае с Linux / FreeBSD / etc. [существуют исключения и причины сисадмина, по которым следует следовать маршруту типа MacOSX]
ОДНАКО MacOSX запускается как тот, который слушает и обрабатывает порт 22 (с моей машины 10.10.4):
Он запускается, возможно, потребуется «перезапустить» в macosx или сообщить о разных портах для прослушивания sshd, так как launchd будет порождать новый sshd для каждого входящего соединения через порт 22.
проверьте следующее:
Я отправил ssh'd на свой маршрутизатор и обратно, чтобы продемонстрировать проблему, и вы заметите, что эти два процесса уже "принадлежат" мне. Сравните это с системой Linux (мой рутер), где вы заметите третий «настоящий» sshd, принадлежащий root:
источник
Следующая строка сначала проверяет конфигурацию и получает PID основного процесса, сохраняя все остальные (протестировано в Linux, zsh):
источник
sshd
процесса.Просто:
источник
sshd
процесса.