Командная строка SSH перезагрузите Mac OSX Mountain Lion


62

Как я могу перезапустить службу SSH через командную строку на Mac OSX Mountain Lion, пожалуйста?

Используя ps aux | grep 'ssh', я смог сделать вывод, что процесс наиболее вероятен /usr/sbin/sshd.

Отсюда я искал в документации по sshd ссылки на «restart», но не нашел ни одного.

Я не знаю, каким должен быть мой следующий шаг.


4
Что вы на самом деле пытаетесь достичь? Если это что-то вроде перезагрузки конфигурации sshd, вам не нужно - launchd запускает новый процесс sshd по требованию при получении входящего соединения, что означает, что конфигурация автоматически перечитывается для каждого нового соединения. OTOH, если вы пытаетесь изменить настройки прослушивателя, они управляются с помощью launchd, а не конфигурации sshd (см. Здесь ).
— Гордон Дэвиссон

1
Это был всего лишь один тест для отладки запроса пароля от предположительно беспарольного ssh с использованием открытых ключей. Оказалось, что я пропустил отключение StrictMode
— Джеймс Вебстер

Ответы:


42

Посмотрите этот ответ на аналогичный вопрос на ServerFault. Команда должна быть такой же в Mountain Lion.

Вы можете остановить службу, используя подкоманду 'unload'.

sudo launchctl unload  /System/Library/LaunchDaemons/ssh.plist

Обновление, предложенное @MattClark: для перезапуска службы используйте loadпосле unload:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

Обратите внимание, что существующие сеансы SSH будут прерваны, поэтому вам нужно запускать их независимо от текущего сеанса пользователя.


Это получает меняlaunchctl: Error unloading: com.openssh.sshd
— Николас Миари

1
@MattClark Тогда я предлагаю вам держаться подальше от производственных машин, пока вы не улучшите свое понимание чтения. Из моего ответа: «Вы можете ОСТАНОВИТЬ услугу ...» (выделено мое).
— Ансгар Вичерс

3
Вы правы, я неправильно это понял, это была моя вина. Однако это также не ответило на вопрос, как он был задан.
— Мэтт Кларк

Вы можете запустить это за один раз с помощью Cx Ce (C обозначает Control). Вставьте его в терминал, затем нажмите Cx Cc, чтобы выполнить команду emacs kill, которая предложит вам сохранить. Я сделал это удаленно, и это не убило мое соединение ... учитывая, что ваш конфиг правильный.
— Рэй Фосс

92

Нет причин «выгружать» службу sshd, когда вместо этого вы можете просто «остановить» службу sshd. Он перезапустится сам по себе.

sudo launchctl stop com.openssh.sshd

2
на горе Лев:launchctl stop error: No such process
— RickyA

1
@RickyA: отлично работал на OSX Mavericks
— neu242

Здесь не работает ( launchctl stop error: No such process)
— Николас Миари

1
Вам нужно, sudoтак как он запускается именно так. Сравните работающие демоны / агенты launchctl list | grep -i opensshпротив sudo launchctl list | grep -i openssh. Для справки прочитайте ссылку
— launchctl

Это больше не работает в OS X Yosemite, попытка остановить sshd (как root) приводит к состоянию выхода 3, и служба продолжает работать.
— RCross

4

Я не мог подтвердить, что ответ Ансгара сработал, так как не было никаких сообщений / явных признаков, хотя я уверен, что это сработало.

Я также обнаружил, killall sshdчто убивает и перезапускает процессы sshd с тем недостатком, что любые соединения прекращаются.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.