Nach dem, was ich bisher gelesen (und erlebt) habe, gibt es drei Hauptmethoden, die angewendet werden können:
- Ändern Sie die Einstellung in der Datei ssh.plist.
- Ändern Sie die Einstellung in der Datei / etc / services.
- Ändern Sie die Einstellung in der Datei /etc/sshd.conf.
Eine andere Möglichkeit, die ich persönlich allen diesen Methoden bei weitem vorziehe, da sie das Herumspielen mit Mac OS X-Systemdateien vermeidet, ist die Verwendung von socat, um Port 22 auf den von Ihnen gewünschten Port umzuleiten.
- Laden Sie socat herunter: http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz
- Verschiebe die tar.gz Datei in dein / usr / local / Verzeichnis (
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)
- Wechseln Sie in Ihr Verzeichnis / usr / local / bin (
cd /usr/local/bin
)
- Dekomprimieren:
sudo tar -xvzf socat-1.7.3.2.tar.gz
- Wechseln Sie in das unkomprimierte Dateiverzeichnis:
cd ./socat-1.7.3.2
- Führen Sie das übliche configure, make und make install aus, um socat (
sudo ./configure && sudo make && sudo make install
) zu installieren.
- Leiten Sie Port 22 (Standard-ssh) mit der richtigen Option an einen beliebigen Port um (im folgenden Beispiel 2222), indem Sie einen socat-Aufruf senden (
sudo socat TCP-LISTEN:2222,reuseaddr,fork TCP:localhost:22
).
Sie sind fertig und Ihre Mac OS X-Systemdateien bleiben unverändert. Darüber hinaus funktioniert diese Methode nicht nur auf Snow Leopard, sondern auf allen Versionen von Mac OS X und auf allen Computern, auf denen socat ausgeführt werden kann.
Das Letzte, was Sie tun müssen, wenn Sie einen Router / eine Firewall verwenden, ist, die richtigen Umleitungsbefehle in Ihren Router / Ihre Firewall aufzunehmen.
Außerdem wird vermieden, dass die Frage, ob die ssh.plist-Methode, die services-Methode oder welche Methode auch immer besser, eleganter oder schlechter ist als die andere, in die Debatte gerät.
Sie können auch problemlos ein Skript vorbereiten, das beim Start ausgeführt wird, um die Socat-Umleitung bei jedem Neustart des Computers neu zu erstellen. Legen Sie dies in /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>
Verwenden Sie sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
es zu laden. Es wird bei zukünftigen Neustarts automatisch geladen.
Darüber hinaus können Sie die Sicherheit verbessern, indem Sie (i) Ihre Firewall so einstellen, dass Verbindungen zu Ihrem Port 22 von einer anderen Schnittstelle als dem Loopback (127.0.0.1) blockiert werden, und (ii) eine ähnliche Änderung in Ihrer Datei sshd.conf vornehmen Ich lasse ssh nur auf dem Loopback hören.
Genießen.
/usr/libexec/sshd-keygen-wrapper
(in den folgenden Listen gezeigt) eine andere SSH starten kann als in der Liste selbst angegeben. Wenn Sie es katzen, fängt es immer an/usr/sbin/sshd
.