Dans Réglages Système
- Ouvrez Réglages Système, Général, Partage. Il faudra peut-être faire défiler vers le bas.
- Cliquez sur le bouton d'information à côté de Session à distance.
- Activez Session à distance.
- Sous Autoriser l'accès pour, choisissez Tous les utilisateurs ou Seulement ces utilisateurs. Préférez la liste courte.
- Notez la commande affichée sous « Session à distance : activée ». C'est ce que vous saisissez sur l'autre ordinateur.
L'option d'accès complet au disque
Le même panneau propose l'option « Allow full disk access for remote users ». Laissez-la désactivée sauf besoin. Sans elle, une session à distance peut afficher Operation not permitted dans les dossiers que macOS protège, même si vous en êtes propriétaire. Ce message concerne ce réglage, pas vos permissions Unix.
Depuis le Terminal
sudo systemsetup -setremotelogin on
D'après man systemsetup, cela demande des droits d'administrateur et l'accès complet au disque. Sans ce dernier, la commande s'arrête avec ce message :
setremotelogin: Turning Remote Login on or off requires Full Disk Access privileges.
Pour corriger cela, ajoutez votre application de terminal dans Réglages Système, Confidentialité et sécurité, Accès complet au disque, puis rouvrez-la. Ou utilisez Réglages Système pour ce seul changement, ce qui évite de donner cette large permission à votre terminal.
Pour vérifier l'état actuel :
sudo systemsetup -getremotelogin
Sans sudo, la réponse est You need administrator access to run this tool... exiting!. Soyez prudent avec -setremotelogin off par SSH : la page de manuel avertit qu'il faudra ensuite un accès local pour le réactiver.
Se connecter depuis un autre ordinateur
ssh user@203.0.113.10
Utilisez le nom court du compte, celui qu'affiche whoami sur le Mac, et le mot de passe de session de ce compte. Le nom se terminant par .local affiché dans Partage fonctionne aussi sur le même réseau.
Un Mac en veille ne répond pas. Si la connexion expire, réveillez le Mac et réessayez, ou revoyez ses réglages de mise en veille.
Ce qui diffère de Linux
- Le port. launchd détient le socket d'écoute, défini dans
/System/Library/LaunchDaemons/ssh.plist:Portdanssshd_configne décide donc pas du port d'écoute. - La liste des utilisateurs. La liste « Seulement ces utilisateurs » correspond au groupe
com.apple.access_ssh. Un utilisateur absent de ce groupe est refusé même avec le bon mot de passe. - La configuration. Le fichier est
/etc/ssh/sshd_config, avec les réglages propres à macOS dans/etc/ssh/sshd_config.d/100-macos.conf.
Utiliser une clé
Depuis l'autre ordinateur, générez une clé et installez-la avec ssh-copy-id user@203.0.113.10. Vous pourrez ensuite désactiver la connexion par mot de passe. Pour atteindre le Mac depuis l'extérieur de votre réseau sans ouvrir de port sur votre routeur, voir SSH sans IP publique.
Les clés et mots de passe de chaque machine peuvent rester dans un gestionnaire de clés SSH avec vault chiffré plutôt que dans des fichiers épars.
Questions
Activer la session à distance expose-t-il mon Mac à Internet ?
Seulement si quelque chose redirige le port 22 vers lui, par exemple une redirection de port sur votre routeur. Sur un réseau domestique ou de bureau normal, seuls les appareils de ce réseau peuvent l'atteindre. Utilisez quand même un mot de passe solide ou une clé.
Comment se connecter en SSH à un Mac depuis un iPhone ?
Activez Session à distance, puis ouvrez une app SSH sur l'iPhone et connectez-vous au nom .local ou à l'adresse du Mac, avec l'utilisateur et le mot de passe du Mac. Les deux appareils doivent être sur le même réseau, ou sur le même VPN quand vous êtes ailleurs.
Comment désactiver SSH sur un Mac ?
Désactivez Session à distance dans Réglages Système, Général, Partage. Faites-le devant le Mac : pour la réactiver, il faut un accès local.
Sources
- Autoriser un ordinateur distant à accéder à votre Mac, Assistance Apple
- sshd_config(5), manuel OpenBSD