0 votes

Laisser le démon SSH fonctionner en permanence

Pour une raison que j'ignore, je ne parviens pas à trouver une recherche sur Google qui réponde réellement à cette question. J'ai un Mac, et j'aimerais que le daemon ssh tourne en arrière-plan à tout moment, afin que je puisse me connecter en ssh depuis d'autres machines chaque fois que j'en ai besoin. Actuellement, je peux activer ssh en allant dans Préférences système > Partage > Connexion à distance, et en cochant la case pour activer le service. Je peux me connecter en ssh avec succès. Cependant, après l'avoir activé, le service ssh se désactive automatiquement lorsque je me déconnecte de ma session ssh. J'active le service via mac, je me connecte via ssh depuis une autre machine, je me déconnecte, puis je vérifie les paramètres de mac pour constater que ssh est désactivé. De plus, je crois que mon mac mettra automatiquement fin à ssh après un certain temps, soit parce que la machine se met en veille, soit à cause d'un timeout, je n'ai pas encore trouvé le déclencheur.

Comment puis-je faire en sorte que le démon ssh soit activé de façon PERMANENTE ? Je veux l'équivalent de systemctl enable sshd pour Mac. Je veux que le daemon ssh démarre au démarrage, et reste actif tant que la machine est allumée, sans s'arrêter au moment de la déconnexion d'un utilisateur.

J'utilise actuellement MacOS Monterey 12.6.

EDIT : Pour clarifier les choses sur la base des commentaires reçus, je peut se connecter via ssh si j'active la connexion à distance dans les préférences du système. C'est le ssh par défaut qui a été installé lorsque j'ai reçu le Mac, et je ne crois pas qu'il y ait de logiciel MDM installé sur le Mac autre que Computrace. Mon compte est un compte d'administrateur, car la connexion à distance est limitée aux administrateurs, et j'ai également un accès sudo.

J'ai effectué d'autres tests et je n'arrive pas à reproduire de manière fiable le problème de la désactivation de la connexion à distance après la connexion et la déconnexion via ssh, mais il y a un problème avec la connexion à distance. a est bel et bien arrivé. Juste avant de poser cette question, j'ai activé la connexion à distance via les préférences système, je me suis connecté au Mac via ssh, j'ai fermé cette connexion, puis j'ai vérifié à nouveau via les préférences système pour constater que la connexion à distance n'était plus cochée.

Il semble qu'en plus de s'éteindre aléatoirement, le service de connexion à distance soit désactivé lorsque le Mac se met en veille. J'ai déjà eu une session ssh déconnectée auparavant, mais je me demande s'il ne s'agissait pas d'un problème distinct, peut-être un problème de wifi, car je viens juste de me connecter par ssh et, pendant la connexion, j'ai désactivé le service de connexion à distance sans mettre fin à la connexion ssh existante.

Merci pour l'astuce concernant launchctl. Je peux maintenant voir via launchctl que sshd crée un nouveau processus lorsqu'une connexion est tentée. Cependant, lorsque la connexion à distance est désactivée ou le devient d'elle-même, le processus com.openssh.sshd n'existe pas et ne crée donc pas de sous-processus pour gérer la connexion.

% sudo launchctl list | grep ssh
-   0   com.openssh.sshd
90388   0   com.openssh.sshd.43C47EF8-F4FF-49E2-BBD9-96D87190B91B

1voto

Tim Campbell Points 465

Sshd est automatiquement géré par launchd. La ligne de commande est launchctl mais en général, pour activer/désactiver l'accès ssh à distance, vous utilisez les Paramètres du système (anciennement Préférences du système).

Dans MacOS 13 (Ventura), cela se trouve dans Paramètres du système -> Général -> Partage et assurez-vous d'activer la fonction Connexion à distance .

launchd (/sbin/launchd) gère le lancement automatique de divers services ou tâches en fonction du démarrage du système, de la connexion de l'utilisateur, de l'accès au service ou même de calendriers basés sur l'heure.

Si vous avez activé l'option "Connexion à distance" dans les paramètres du système, launchd lancera automatiquement un processus sshd lorsque vous établirez une connexion à distance.

C'est ce que devrait se produisent. Vous indiquez qu'il est possible d'activer la connexion à distance, de la faire fonctionner une fois, mais qu'elle ne se lancera pas lors des tentatives d'accès suivantes, n'est-ce pas ?

Je commencerais par m'assurer qu'il ne s'agit pas d'un problème de réseau. Pouvez-vous faire un 'ping' du mac à travers le réseau ? Si vous pouvez confirmer qu'il ne s'agit pas d'un problème de réseau et qu'il semble n'avoir d'impact que sur ssh, alors je regarderais de plus près le débogage de ssh.

Valider le contenu de /etc/ssh/sshd_config

Remarque : le fichier ci-dessus inclut probablement /etc/ssh/sshd_config.d/*, qui reprend le contenu de /etc/ssh/sshd_config.d/100-MacOS.conf, mais il s'agit d'un fichier très court de 3 lignes.

En outre, je pourrais vérifier que les fichiers de configuration de launchd sont bien à leur place et n'ont pas été modifiés. et qu'il n'y a pas d'autres agents de lancement définis pour ssh dans d'autres endroits.

Launchd définit les agents et les actions à plusieurs endroits.

/System/Library/LaunchDaemons    <- do not edit
/System/Library/LaunchAgents     <- do not edit
/Library/LaunchDaemons
/Library/LaunchAgents
~/Library/LaunchAgents

Les deux premiers dossiers concernent les services définis par le système d'exploitation. Bien que vous puissiez certainement regarder dans ces dossiers, ne modifiez rien et n'ajoutez ou ne supprimez pas de fichiers dans ces dossiers. En règle générale, ne modifiez jamais rien dans le dossier /System.

Les deux dossiers suivants sous /Library sont pour les agents ajoutés par les administrateurs système (souvent lorsque vous installez des applications tierces ou des utilitaires ... s'ils ont besoin que launchd gère quelque chose, ils l'ajouteront à l'un de ces dossiers.

L'emplacement final se trouve dans le dossier de votre bibliothèque personnelle, ~/Library/LaunchAgents.

Le service SSH intégré est défini dans :

/System/Library/LaunchDaemons/ssh.plist
/System/Library/LaunchAgents/com.openssh.ssh-agent.plist

Ces deux fichiers ne doivent pas être modifiés. Si vous les inspectez, ils indiqueront que le service est désactivé, mais c'est parce que dans une installation par défaut du système d'exploitation, ils sont désactivés à moins que vous ne les activiez manuellement via les Paramètres du système (alias Préférences du système). Launchd dispose d'une base de données d'annulation. Un utilitaire est normalement utilisé pour inspecter le contenu de cette base de données.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X