Wie aktiviere ich mehrere SSHD-Ports in Mountain Lion?

2

Ich habe mehrere Computer in meinem Netzwerk, auf die ich regelmäßig mit ssh zugreife. Ich möchte den Remotezugriff über die Portweiterleitung aktivieren. Das bedeutet, dass für jeden Computer separate SSHD-Ports erforderlich sind. Trotzdem möchte ich weiterhin Port 22 für den lokalen Zugriff verwenden.

Mir ist klar, dass ich die Configs zu / etc / services hinzufügen muss und dass der Schlüssel zu meiner Antwort in sshd.plist liegt. Ich habe versucht, verschiedenen Vorschlägen online zu folgen. All dies scheint darauf hinzudeuten, dass sich die plist-Dateien an anderen Orten befinden als meine. Eine schlug ssh.plist und eine andere sshd.plist vor. Meine Änderungen an ssh.plist haben nichts gebracht. Ein anderer schlug vor, die Datei sshd.plist zu ändern, die auf meinem Computer noch nicht vorhanden war, aber /System/Library/LaunchDaemons/com.apple.FileSyncAgent.sshd.plist. Ich wollte eine Kopie dieser Datei erstellen und umbenennen, konnte sie jedoch nicht mit einem Aufruf in / etc / services verknüpfen. Ich habe trotzdem eine Kopie erstellt, aber dann konnte ich nicht herausfinden, wie der Schlüssel geändert werden soll, da sein aktueller Wert keine Beziehung zum Dateinamen hatte (im Gegensatz zum Beispiel für ssh.plist).

Daher habe ich momentan ssh und ssh-alt in den Diensten festgelegt, zwei ssh.plist-Dateien, die sich je nach den verschiedenen Dateinamen unterscheiden (eine ssh und die andere ssh-alt), und zwei .sshd.plist-Dateien, die jeweils Spiegelbilder sind andere. Nach dem Neustart des Computers funktioniert Port 22 nicht mehr, mein alternativer Port jedoch.

Anregungen wäre dankbar.

user2000664
quelle
1
Diese Frage / Antwort könnte genau das sein, was Sie brauchen - lassen Sie uns wissen, wenn Ihr Problem anders ist als das andere. apple.stackexchange.com/q/21341/5472
bmike
Danke, aber das war das erste, dem ich erfolglos gefolgt bin. Ich habe diesen Fehler als ältere Version von OS X (Löwe, nicht Berglöwe) eingestuft. Beachten Sie, dass er sich auf ssh.plist und nicht auf sshd.plist bezieht
user2000664
Können Sie Ihren Router so einstellen, dass er verschiedene Ports von außen an den richtigen Computer an Port 22 weiterleitet, anstatt die Computer anzupassen? Dies ist möglicherweise eine nachhaltigere Lösung, wenn Sie einen Router haben, der dies unterstützt ...
Scot

Antworten:

2

Welp, ich fand die Antwort nach ein paar weiteren Tagen der Recherche mit Hilfe von eine Antwort auf diesen MacWorld-Beitrag Ich dachte, es müsste eine Möglichkeit geben, mehrere Ports in eine .plist-Datei aufzunehmen, aber ich konnte es nicht herausfinden. Sie können ssh.plist einen "Alternate Listener" -Schlüssel für den zusätzlichen Port im Sockets-Bereich hinzufügen, z.

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

Beachten Sie den String ssh-alt für SockServiceName. Der ursprüngliche "Listener" -Schlüssel bleibt unverändert, sodass Sie Listener und alternative Listener haben. Sie haben zwei Einträge in / etc / services für ssh und ssh-alt wie:

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

Dadurch wird der interne Zugriff auf Port 22 beibehalten und der Zugriff über Port 4790 für die externe Verwendung erstellt (vorausgesetzt, Sie deaktivieren Port 22 und Port Forward Port 4790 auf Ihrer Firewall / Ihrem Router.

UnConundrum
quelle
1
Sofern Sie die "ssh-alt" -Definition nicht an anderer Stelle verwenden müssen, ist es für mich einfacher, die Portnummer direkt in die ssh.plist zu übernehmen und die Datei / etc / services nicht zu bearbeiten. (Z. B. Änderung <string>ssh-alt</string> zu <string>4790</string>.) "Alternative Listener" können beliebige Bezeichnungen sein (z. B. "Extern").
ithos67