3 votes

Comment activer plusieurs ports sshd dans Mountain Lion ?

J'ai plusieurs machines sur mon réseau auxquelles j'accède régulièrement en utilisant ssh. Je veux activer l'accès à distance par transfert de port, ce qui signifie que j'aurai besoin de ports sshd distincts pour chaque machine. Cela dit, j'aimerais continuer à utiliser le port 22 pour l'accès local.

Je réalise que je dois ajouter les configurations à /etc/services et que la clé de ma réponse se trouve dans sshd.plist. J'ai essayé de suivre diverses suggestions en ligne, qui semblent toutes indiquer que les fichiers plist existent à des emplacements différents des miens. L'une d'entre elles suggère ssh.plist et une autre sshd.plist. Mes modifications de ssh.plist n'ont rien donné. Un autre a suggéré de modifier sshd.plist, qui n'existe même pas sur ma machine, mais /System/Library/LaunchDaemons/com.apple.FileSyncAgent.sshd.plist existe. J'allais faire et renommer une copie de ce fichier, mais je ne pouvais pas le lier à un appel dans /etc/services. J'ai quand même fait une copie, mais je n'ai pas réussi à trouver comment modifier la clé, car sa valeur actuelle n'avait aucune relation avec le nom du fichier (contrairement à l'exemple pour ssh.plist).

Ainsi, j'ai actuellement ssh et ssh-alt configurés dans les services, deux fichiers ssh.plist qui varient en fonction des différents noms de fichiers (un ssh et l'autre ssh-alt) et deux fichiers .sshd.plist qui sont des images miroir l'un de l'autre. Lorsque j'ai redémarré la machine, le port 22 ne fonctionne plus, mais mon port alternatif fonctionne.

Toute suggestion serait appréciée.

2voto

KernelOfChaos Points 169

Eh bien, j'ai trouvé la réponse après quelques jours de recherche supplémentaires, avec l'aide de une réponse à cet article de MacWorld Je pensais qu'il devait y avoir un moyen d'inclure plusieurs ports dans un seul fichier .plist, mais je n'ai pas réussi à le découvrir. Vous pouvez ajouter une clé "Alternate Listener" à ssh.plist pour le port supplémentaire à l'intérieur de la portée Sockets, comme par exemple :

 <key>Sockets</key>
 <dict>
         <key>Listeners</key>
         <dict>
            (...)
         </dict>
         <key>Alternate Listeners</key>
         <dict>
            <key>SockServiceName</key>
            <string>ssh-alt</string>
         </dict>
 </dict>

Remarquez la chaîne ssh-alt pour SockServiceName. La clé originale "Listeners" reste telle quelle, vous avez donc Listeners et Alternate Listeners. Vous avez deux entrées dans /etc/services pour ssh et ssh-alt comme :

ssh              22/udp
ssh              22/tcp
ssh-alt        4790/udp
ssh-alt        4790/tcp

qui préserve l'accès interne au port 22 et crée un accès via le port 4790 pour un usage externe (en supposant que vous désactivez le port 22 et transférez le port 4790 sur votre pare-feu/routeur.

0voto

Ray Foss Points 241

Mise à jour : ne fonctionne plus sur Catalina... l'alternative consiste à copier le démon de lancement, à renommer le label et à launchctl load il.
Impossible de modifier le port ssh sur High Sierra
La théorie est toujours la même, donc je laisse en place... il a aussi tort de ne pas pouvoir utiliser le même processus... vous pouvez si vous le chargez avec Root. Mais ce n'est pas recommandé car il y a des conflits avec MacOS.

Tl;Dr :

  1. ouvrir nano /System/Library/LaunchDaemons/ssh.plist et ajouter cette clé/dict à l'intérieur de sockets/dict.

    <key>Netgate SSH</key>
    <dict>
        <key>SockServiceName</key>
        <string>2269</string>
    </dict>
  2. redémarrer le démon ssh ( danger ! ) launchctl unload /System/Library/LaunchDaemons/ssh.plist && launchctl load /System/Library/LaunchDaemons/ssh.plist

La valeur de votre clé Sockets/dict devrait ressembler à ceci

<key>Sockets</key>
<dict>
    <key>Listeners</key>
    <dict>
        <key>SockServiceName</key>
        <string>ssh</string>
        <key>Bonjour</key>
        <array>
            <string>ssh</string>
            <string>sftp-ssh</string>
        </array>
    </dict>
    <key>My Little Pony SSH</key>
   <dict>
       <key>SockServiceName</key>
       <string>2269</string>
   </dict>
</dict>

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