Die Datei services

SSH-Port unter OS X ändern

OS X bis einschließlich Yosemite

Standardmäßig “lauscht” SSH auf Port 22. Da dies allgemein bekannt ist, macht es Sinn, einen anderen Port zu verwenden, um potentiellen Angreifern das Leben zu erschweren.

Unter OS X muss dazu – als root – an zwei Stellen “geschraubt” werden: Da wäre zunächst die Datei services, die sich im Verzeichnis

/etc

befindet. In dieser Datei legt Ihr einen neuen Eintrag für den neuen SSH-Port an. Soll der Port beispielsweise die Bezeichnung new-ssh erhalten und SSH den Port 49152 verwenden, dann tragt Ihr am Ende der Port-Liste

new-ssh 49152/tcp # new SSH port

ein.

Des Weiteren ist die Datei ssh.plist anzupassen, die sich im Verzeichnis

/System/Library/LaunchDaemons

befindet. Dort müsst Ihr den Eintrag

<key>SockServiceName</key>
<string>ssh</string>

in

<key>SockServiceName</key>
<string>new-ssh</string>

ändern.

Außerdem ist im Abschnitt <array> ebenfalls new-ssh einzutragen, so dass dieser Teil insgesamt so aussieht:

<key>SockServiceName</key>
<string>new-ssh</string>
<key>Bonjour</key>
<array>
    <string>new-ssh</string>
    <string>sftp-ssh</string>
</array>

Eine Änderung der ssh.plist erfordert einen Neustart des Systems oder ein reload dieser Datei:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 

Nun sollte SSH auf dem neuen Port funktionieren und Ihr könnt über die bash mit dem Kommando

ssh -p 49152 -l [benutzername] [ip-adresse-des-ziel-rechners]

eine Verbindung aufbauen.

El Capitan

Aber OS X 10.11 (El Capitan) ist der Aufwand etwas höher. Denn aufgrund des neu eingeführten System Integrity Protection (SIP) ist eine Bearbeitung der Datei ssh.plist nicht mehr möglich. Mit folgenden Schritten kommt Ihr dennoch zum Ziel:

Zunächst legt Ihr in der Datei

/etc/services

einen neuen SSH-Eintrag – wie bereits oben beschrieben – an, z.B.

new-ssh 49152/tcp # new SSH port

Unter El Capitan muss nun von der Datei

/System/Library/LaunchDaemons/ssh-plist

eine Kopie erstellt werden. In diesem Beispiel habe ich die Kopie im Verzeichnis /Library/LaunchDaemons angelegt:

sudo cp ssh.plist /Library/LaunchDaemons/ssh2.plist

Die Datei ssh2.plist muss zunächst ein neues Label erhalten. Ändert also

<key>Label</key>
<string>com.openssh.sshd</string>

zu

<key>Label</key>
<string>com.openssh.sshd2</string>

Jetzt ändert Ihr den neuen SSH-Port wie oben beschrieben, so dass der entsprechende Abschnitt folgendermaßen aussieht:

<key>SockServiceName</key>
<string>new-ssh</string>
<key>Bonjour</key>
<array>
    <string>new-ssh</string>
    <string>sftp-ssh</string>
</array>

Anschließend kann mit

sudo launchctl load -w /Library/LaunchDaemons/ssh2.plist

eine neue Instanz des ssh daemon erzeugt werden. Mit der Anweisung

sudo launchctl unload /Library/LaunchDaemons/ssh2.plist

wird die Datei ssh2.plist nicht weiter genutzt. Ob die neue Port-Einstellung funktioniert, kann mit

netstat -at | grep LISTEN

überprüft werden. Dort solltet Ihr einen Eintrag ähnlich dem folgenden sehen können:

tcp4  0  0  *.new-ssh  *.*  LISTEN

Anmerkungen

Mit dieser Konfiguration wird Port 22 nicht deaktiviert. Das ist unschädlich, solange dieser Port – z.B. im Router – blockiert wird, so dass er von außen nicht erreichbar ist.

Es gibt auch noch eine Alternative zu dem bisher aufgezeigten Weg:

Nach einem Neustart des Macs kann mittels cmd + R in den Recovery Mode gewechselt werden. Anschließend öffnet Ihr über

--> Dienstprogramme --> Terminal

ein Terminal-Fenster und deaktiviert mit der Anweisung

csrutil disable

die System Integrity Protection.

Dann wird der Mac neu gestartet und Ihr könnt wie – im ersten Teil des Artikels beschrieben – den SSH-Port anpassen. Denn nun lässt sich die Datei

/System/Library/LaunchDaemons/ssh-plist

bearbeiten.

Wenn die Anpassungen erfolgt sind, wird der Rechner wieder im Recovery Mode gestartet, das Terminal aufgerufen und mit der Anweisung

csrutil enable

die System Integrity Protection aktiviert. Nach einem weiteren Neustart sollte nun der neue SSH-Port zur Verfügung stehen.

Durch Benutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Mehr Informationen

Die Verwendung von Cookies dient dazu, Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf diese Website zu analysieren. Außerdem werden Informationen zur Nutzung dieser Webseite an Partner für soziale Medien, Werbung und Analysen weitergegeben.

Schließen