Redémarrage SSH en ligne de commande Mac OSX Mountain Lion

62

Comment puis-je redémarrer le service SSH via la ligne de commande sur Mac OSX Mountain Lion s'il vous plaît?

En utilisant ps aux | grep 'ssh', j'ai pu déduire que le processus est le plus probable /usr/sbin/sshd.

De là, j'ai cherché dans la documentation de sshd des références à 'redémarrer' mais n'en ai trouvé aucune.

Je ne sais pas quelle devrait être ma prochaine étape.

James Webster
la source
4
Qu'essayez-vous réellement d'accomplir? S'il s'agit de recharger la configuration sshd, vous n'avez pas besoin - launchd démarre un nouveau processus sshd à la demande lorsqu'une connexion entrante est reçue, ce qui signifie que la configuration est relue automatiquement à chaque nouvelle connexion. OTOH, si vous essayez de modifier les paramètres d'écoute, ceux-ci sont contrôlés par launchd et non par la configuration sshd (voir ici ).
Gordon Davisson
1
Ce n'était qu'un test du débogage d'une demande de mot de passe de ssh supposément sans mot de passe à l'aide de clés publiques. Il s'est avéré que ce que j'ai manqué, c'est d'éteindre StrictMode
James Webster le

Réponses:

42

Voir cette réponse à une question similaire sur ServerFault. La commande devrait être la même dans Mountain Lion.

Vous pouvez arrêter le service à l'aide de la sous-commande 'unload'.

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

Mise à jour suggérée par @MattClark: Pour redémarrer le service, utilisez loadaprès unload:

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

Notez que les sessions SSH existantes seront terminées. Vous devez donc l'exécuter indépendamment de la session utilisateur en cours.

Ansgar Wiechers
la source
Celui-ci me prendlaunchctl: Error unloading: com.openssh.sshd
Nicolas Miari
1
@MattClark Ensuite, je vous suggère de rester à l'écart des machines de production jusqu'à ce que vous amélioriez votre compréhension en lecture. D'après ma réponse: "Vous pouvez arrêter le service ..." (c'est moi qui souligne).
Ansgar Wiechers
3
Vous avez raison, j'ai mal interprété cela, c'était de ma faute. Cependant, cela n'a pas non plus répondu à la question car elle a été posée.
Matt Clark
Vous pouvez exécuter ceci en une fois avec Cx Ce (C signifie Control). Collez-le dans le terminal, puis Cx Cc pour exécuter la commande emacs kill, qui vous invitera à sauvegarder. Je l'ai fait à distance et cela n'a pas tué ma connexion ... étant donné que votre configuration est correcte.
Ray Foss
92

Il n'y a aucune raison de «décharger» le service sshd, alors que vous pouvez simplement «arrêter» le service sshd. Il va redémarrer tout seul.

sudo launchctl stop com.openssh.sshd
Glenschler
la source
2
on lion de launchctl stop error: No such process
montagne
1
@RickyA: a bien fonctionné sous OSX Mavericks
neu242
Ne fonctionne pas ici ( launchctl stop error: No such process)
Nicolas Miari
1
Vous devez le faire sudopuisque c'est comme cela que le programme est lancé. Comparez les daemons / agents en cours d' exécution launchctl list | grep -i opensshcontre sudo launchctl list | grep -i openssh. Pour référence, lisez le lien
launchctl
Cela ne fonctionne plus sous OS X Yosemite. Si vous tentez d'arrêter sshd (en tant que root), l'état de sortie est 3 et le service continue de s'exécuter.
RCross
4

Je ne pouvais pas confirmer la réponse d'Ansgar qui fonctionnait, car il n'y avait aucun message / signe évident, bien que je sois confiant.

J'ai également découvert killall sshdqui tue et redémarre les processus sshd avec l'inconvénient que toutes les connexions sont arrêtées.

James Webster
la source