Командная строка 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
glenschler
источник
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 с тем недостатком, что любые соединения прекращаются.

Джеймс Вебстер
источник