Comment activer SSH sur un Mac à partir de la ligne de commande

SSH pré-installé par défaut sur tous les Mac modernes exécutant macOS ou Mac OS X, mais le démon SSH (Secure Shell) est également désactivé par défaut. Les utilisateurs avancés de Mac apprécieront peut-être la possibilité d'activer SSH et désactiver SSH sont tous deux disponibles entièrement à partir de la ligne de commande de Mac OS, permettant un moyen simple d'autoriser ou d'interdire les connexions à distance dans un ordinateur. Il n'y a pas de chargement, de téléchargement ou de compilation kext nécessaire pour activer SSH à partir du Terminal sur n'importe quel Mac. Il vous suffit d'exécuter une commande de configuration du système, comme nous le montrerons dans ce tutoriel.


Une note de côté rapide; Ce guide s'applique à toutes les versions de macOS et de Mac OS X, mais s'adresse vraiment aux utilisateurs plus avancés qui passent beaucoup de temps dans le Terminal. Si vous souhaitez activer et désactiver SSH et éviter la ligne de commande, vous pouvez le faire en activant la connexion à distance dans le panneau de préférences Partage sur un Mac, ou arrêter le serveur en le laissant décoché. Si vous n'utilisez pas régulièrement ssh, il n'y a aucune raison d'activer le serveur ssh sur un Mac.

Comment vérifier si la connexion à distance SSH est activée dans Mac OS via un terminal

Vous voulez vérifier l'état actuel de SSH sur un Mac? À l'aide de la chaîne de commande systemsetup, nous pouvons déterminer rapidement si SSH et Remote Login sont actuellement activés sur n'importe quel Mac:

sudo systemsetup -getremotelogin

Si la connexion à distance et SSH est actuellement activée, la commande et le rapport diront "Remote Login: On" alors que si SSH est désactivé et dans l'état par défaut de macOS, il indiquera "Remote Login: Off".

Activer SSH sur Mac à partir de la ligne de commande avec systemsetup

Pour activer rapidement le serveur SSH et autoriser les connexions ssh entrantes vers le Mac actuel, utilisez l'indicateur -setremotelogin avec systemsetup comme ceci:

sudo systemsetup -setremotelogin on

sudo est nécessaire car la commande systemsetup requiert des privilèges d'administrateur, tout comme lorsque vous activez la connexion à distance à partir des préférences de partage sur un Mac pour activer les serveurs shell sécurisés.

Il n'y a aucune confirmation ou message que la connexion à distance et SSH ont été activés, mais vous pouvez utiliser l'indicateur -getmorelogin mentionné ci-dessus pour vérifier et vérifier que le serveur SSH est en cours d'exécution. Et oui, l'utilisation de -setremotelogin s'applique à l'activation des serveurs ssh et sftp sur Mac.

Une fois que ssh a été activé, tout compte d'utilisateur ou personne qui a un login sur le Mac actuel peut y accéder à distance en utilisant la commande ssh visant l'adresse IP du Mac comme ceci:

ssh [email protected]

Une fois connecté, l'utilisateur aura un accès à distance à l'ordinateur via la ligne de commande, et s'il a un compte admin ou un mot de passe d'administrateur, il aura également un accès complet à l'administration à distance.

Désactiver SSH sur Mac OS avec systemsetup

Si vous voulez désactiver les serveurs SSH à partir de la ligne de commande et ainsi empêcher les connexions à distance, il suffit de passer sur 'off' avec 'off' avec l'option -setremotelogin de systemsetup comme ceci:

sudo systemsetup -setremotelogin off

Encore une fois, sudo est nécessaire pour désactiver SSH et désactiver les serveurs ssh et sftp.

Lorsque vous exécutez la commande avec succès, il vous sera demandé: "Voulez-vous vraiment désactiver la connexion à distance? Si vous le faites, vous perdrez cette connexion et ne pourrez la rallumer que localement sur le serveur (oui / non)? ", Donc confirmez" yes ", ce qui désactivera SSH et déconnectera également toutes les connexions SSH actives au Mac. question. Si vous voulez éviter d'avoir à taper oui / non, peut-être pour l'inclure dans un script d'installation ou autrement, vous pouvez utiliser l'option -f pour contourner la question comme ceci:

sudo systemsetup -f -setremotelogin off

De même, vous pouvez également utiliser -f pour ignorer les invites concernant l'activation de SSH.

systemsetup -f -setremotelogin on

Notez que si vous désactivez SSH ou activez SSH à partir de la ligne de commande, le paramètre du panneau de préférences du système de connexion à distance dans l'interface graphique de Mac OS X sera également ajusté pour refléter les modifications.