Quiero cambiar qué puerto sshd
usa en un servidor Mac. Por ejemplo, digamos del puerto 22 al puerto 32.
La edición /etc/sshd_config
no parece funcionar. ¿Alguien sabe como cambiarlo? Prefiero un método que sea compatible con todas las versiones de OSX (o al menos la mayor cantidad posible).
ssh
mac-osx
mac-osx-server
Alexander Artemenko
fuente
fuente
/usr/libexec/sshd-keygen-wrapper
( que se muestra en las listas a continuación) puede iniciar un SSH diferente al especificado en la propia lista. Si lo atrapas, siempre comienza/usr/sbin/sshd
.Respuestas:
Todas las respuestas anteriores están funcionando (como sugiere Google también), pero son sucias y poco elegantes .
Entonces, la solución es tan simple como usar el número de puerto en lugar del nombre del servicio.
Un extracto de mi editado
/System/Library/LaunchDaemons/ssh.plist
:Nota: para poder editar este archivo en El Capitan, Sierra y probablemente también en versiones futuras, debe deshabilitar SIP (Protección de integridad del sistema). Consulte Cómo deshabilito la Protección de integridad del sistema (SIP) [...] .
La edición anterior también obligará a sshd a escuchar solo a través de IPV4.
Después de realizar cualquier cambio en
ssh.plist
, el archivo debe volver a cargarse de la siguiente manera:Tenga en cuenta que usar
launchctl stop ...
ylaunchctl start ...
NO volverá a cargar este archivo.La página del manual con más información se puede encontrar escribiendo
man launchd.plist
o usando este enlace .fuente
Si desea que sshd escuche en un puerto adicional, puede agregar varias entradas al diccionario Sockets.
Ejemplo:
fuente
/System/Library/LaunchDaemons/ssh.plist
man launchd.plist
.Según lo que he leído (y experimentado) hasta ahora, hay tres métodos principales que se pueden usar:
Otra forma de hacerlo, que personalmente prefiero con mucho a todos y cada uno de estos métodos, porque evita perder el tiempo con los archivos del sistema Mac OS X es usar socat para redirigir el puerto 22 al puerto que desee.
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
)sudo socat TCP-LISTEN:2222,reuseaddr,fork TCP:localhost:22
)Ya ha terminado y sus archivos de sistema mac os x no se modifican. Además, este método funciona no solo en Snow Leopard, sino en todas las versiones de Mac OS X y también en cualquier máquina en la que se pueda ejecutar Socat.
Lo último que debe hacer si utiliza un enrutador / firewall es incluir los comandos de redireccionamiento correctos en su enrutador / firewall.
Además, evita quedar atrapado en el debate sobre si el método ssh.plist, el método de servicios o el método que sea mejor, más elegante o peor que el otro.
También puede preparar fácilmente un script que se ejecute al inicio para reconstruir la redirección socat cada vez que reinicie su máquina. Coloque esto en
/Library/LaunchDaemons/com.serverfault.sshdredirect.plist
:Use
sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
para cargarlo. Se cargará automáticamente en futuros reinicios.Además, también puede mejorar la seguridad (i) configurando su firewall para bloquear cualquier conexión a su puerto 22 desde cualquier otra interfaz que no sea el loopback (127.0.0.1) y (ii) realice un cambio similar en su archivo sshd.conf para haga que ssh escuche solo en el loopback.
Disfrutar.
fuente
/etc/services
archivo es una mala idea: afectará cosas como el inicio de sesión con clave SSH en sus cuentas de github o bitbucket, que buscarán conectarse al nuevo puerto y fallarán.sudo
para instalar. No debe construir con privilegios elevados.<key>KeepAlive</key><true/>
.No podría ver esto documentado correctamente en ninguna parte de una página de manual, pero si no desea hacer nada más que agregar un oyente adicional, puede usar una variedad de oyentes y tener un dict extra. Esto no requiere edición / etc / services si usa el puerto directamente (¡pero recuerde abrir el puerto en su firewall!)
fuente
man launchd.plist
.