D'après ce que j'ai lu (et expérimenté) jusqu'à présent, trois méthodes principales peuvent être utilisées:
- changez le réglage dans le fichier ssh.plist;
- modifiez les paramètres dans le fichier / etc / services;
- modifiez le paramètre dans le fichier /etc/sshd.conf.
Une autre façon de le faire, que je préfère de loin à toutes et chacune de ces méthodes, pour éviter les problèmes de fichiers système Mac OS X, consiste à utiliser socat pour rediriger le port 22 vers le port de votre choix.
- Téléchargez socat: http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz
- Déplacez le fichier tar.gz dans votre répertoire / usr / local / (
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)
- Allez dans votre répertoire / usr / local / bin (
cd /usr/local/bin
)
- Décompresser:
sudo tar -xvzf socat-1.7.3.2.tar.gz
- Déplacer vers le répertoire de fichier non compressé:
cd ./socat-1.7.3.2
- Exécutez les commandes habituelles configure, make et make install pour installer socat (
sudo ./configure && sudo make && sudo make install
)
- Redirige le port 22 (ssh par défaut) vers le port de votre choix (dans l'exemple suivant, 2222) en utilisant l'option appropriée en envoyant un appel socat (
sudo socat TCP-LISTEN:2222,reuseaddr,fork TCP:localhost:22
)
Vous avez terminé et vos fichiers système mac os x ne sont pas modifiés. De plus, cette méthode ne fonctionne pas uniquement sur Snow Leopard, mais sur toutes les versions de Mac OS X et sur toutes les machines sur lesquelles socat peut s'exécuter.
La dernière chose que vous devez faire si vous utilisez un routeur / pare-feu est d’inclure les commandes de redirection appropriées dans votre routeur / pare-feu.
De plus, cela évite de se perdre dans le débat, que la méthode ssh.plist, la méthode des services ou la méthode de votre choix soit meilleure, plus élégante ou pire que l’autre.
Vous pouvez également préparer facilement un script qui s'exécute au démarrage pour reconstruire la redirection socat à chaque redémarrage de votre ordinateur. Placez ceci dans /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.serverfault.sshdredirect</string>
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<true/>
</dict>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/socat</string>
<string>TCP-LISTEN:2222,reuseaddr,fork</string>
<string>TCP:localhost:22</string>
</array>
</dict>
</plist>
Utilisez sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
pour le charger. Il se chargera automatiquement lors des prochains redémarrages.
En outre, vous pouvez également améliorer la sécurité en (i) configurant votre pare-feu de manière à bloquer toute connexion à votre port 22 à partir de toute interface autre que la boucle (127.0.0.1) et (ii) à modifier de manière similaire le fichier sshd.conf. ssh n'écoute que sur le bouclage.
Prendre plaisir.
/usr/libexec/sshd-keygen-wrapper
(indiqué dans les plistes ci-dessous) peut démarrer un SSH différent de celui spécifié dans la pliste elle-même. Si vous le chat, ça commence toujours/usr/sbin/sshd
.