Ich möchte ändern, welcher Port sshd
auf einem Mac-Server verwendet wird. Zum Beispiel von Port 22 nach Port 32.
Die Bearbeitung /etc/sshd_config
scheint nicht zu funktionieren. Weiß jemand, wie man es ändert? Ich würde eine Methode vorziehen, die mit allen OSX-Versionen kompatibel ist (oder zumindest mit so vielen wie möglich).
ssh
mac-osx
mac-osx-server
Alexander Artemenko
quelle
quelle
/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
.Antworten:
Jede vorherige Antwort funktioniert (wie Google auch vorschlägt), aber sie sind schmutzig und unelegant .
Die Lösung ist also so einfach wie die Verwendung der Portnummer anstelle des Dienstnamens.
Ein Auszug aus meinem Schnitt
/System/Library/LaunchDaemons/ssh.plist
:Hinweis: Um diese Datei in El Capitan, Sierra und möglicherweise auch in zukünftigen Versionen bearbeiten zu können, müssen Sie SIP (System Integrity Protection) deaktivieren. Siehe Wie deaktiviere ich den Systemintegritätsschutz (SIP)? [...] .
Die obige Bearbeitung erzwingt auch, dass sshd nur über IPV4 lauscht.
Nachdem Sie Änderungen vorgenommen haben,
ssh.plist
muss die Datei wie folgt neu geladen werden:Beachten Sie, dass mit
launchctl stop ...
undlaunchctl start ...
diese Datei NICHT neu geladen wird.Die Manpage mit weiteren Informationen finden Sie,
man launchd.plist
indem Sie diesen Link eingeben oder verwenden .quelle
Wenn sshd einen zusätzlichen Port überwachen soll, können Sie dem Sockets-Wörterbuch mehrere Einträge hinzufügen.
Beispiel:
quelle
/System/Library/LaunchDaemons/ssh.plist
man launchd.plist
.Nach dem, was ich bisher gelesen (und erlebt) habe, gibt es drei Hauptmethoden, die angewendet werden können:
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.
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)cd /usr/local/bin
)sudo tar -xvzf socat-1.7.3.2.tar.gz
cd ./socat-1.7.3.2
sudo ./configure && sudo make && sudo make install
) zu installieren.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
: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.
quelle
/etc/services
Datei ist eine schlechte Idee - es wirkt sich auf Dinge wie die SSH-Schlüsselanmeldung bei Ihrem Github- oder Bitbucket-Konto aus, die versuchen, eine Verbindung zum neuen Port herzustellen, und fehlschlagen.sudo
mit installieren. Sie sollten nicht mit erhöhten Rechten erstellen.<key>KeepAlive</key><true/>
.Ich konnte das nirgends in einer Manpage richtig dokumentieren, aber wenn Sie nichts weiter tun möchten, als einen zusätzlichen Listener hinzuzufügen, können Sie eine Reihe von Listenern verwenden und ein zusätzliches Diktat haben. Dies erfordert keine Bearbeitung von / etc / services, wenn Sie den Port direkt verwenden (aber denken Sie daran, den Port auf Ihrer Firewall zu öffnen!)
quelle
man launchd.plist
.