3 votos

¿Cómo habilito varios puertos sshd en Mountain Lion?

Tengo varias máquinas en mi red a las que accedo regularmente usando ssh. Quiero habilitar el acceso remoto a través del reenvío de puertos, lo que significa que necesitaré puertos sshd separados para cada máquina. Dicho esto, me gustaría seguir usando el puerto 22 para el acceso local.

Me doy cuenta de que tengo que agregar las configuraciones a /etc/services y que la clave de mi respuesta está en sshd.plist. He intentado seguir varias sugerencias en línea, todas las cuales parecen indicar que los archivos plist existen en ubicaciones diferentes a las mías. Uno sugirió ssh.plist y otro sshd.plist. Mis cambios en ssh.plist no lograron nada. Otro sugirió cambiar sshd.plist, que ni siquiera existía en mi máquina, pero /System/Library/LaunchDaemons/com.apple.FileSyncAgent.sshd.plist sí. Iba a hacer una copia y renombrar ese archivo, pero no pude relacionarlo con una llamada en /etc/services. Hice una copia de todos modos, pero luego no pude entender cómo modificar la clave ya que su valor actual no tenía relación con el nombre del archivo (a diferencia del ejemplo para ssh.plist).

Entonces, actualmente tengo ssh y ssh-alt configurados en services, dos archivos ssh.plist que varían según los nombres de archivo diferentes (uno ssh y otro ssh-alt) y dos archivos .sshd.plist que son imágenes especulares entre sí. Cuando reinicié la máquina, el puerto 22 dejó de funcionar, pero mi puerto alternativo sí lo hace.

Cualquier sugerencia sería apreciada.

1 votos

Esta pregunta y respuesta podría ser lo que necesitas - avísanos si tu problema es diferente al otro. apple.stackexchange.com/q/21341/5472

0 votos

Gracias, pero ese fue el primero que seguí sin éxito. Atribuí ese fracaso a ser una versión más antigua de OS X (leon, no león de montaña). Ten en cuenta que se refiere a ssh.plist y no a sshd.plist

0 votos

En lugar de ajustar las máquinas, ¿puedes ajustar tu enrutador para reenviar puertos diferentes externamente a la máquina adecuada en el puerto 22? Esta puede ser una solución más sostenible si tienes un enrutador que lo admita...

2voto

UnConundrum Puntos 21

Bueno, encontré la respuesta después de unos días más de investigación, con la ayuda de una respuesta a este post de MacWorld Pensé que tenía que haber alguna forma de incluir varios puertos en un archivo .plist, pero no pude resolverlo. Puede agregar una clave "Alternate Listener" a ssh.plist para el puerto adicional dentro del alcance de Sockets, como:

Sockets

         Listeners

            (...)

         Alternate Listeners

            SockServiceName
            ssh-alt

Nota la cadena ssh-alt para SockServiceName. La clave original "Listeners" queda igual, por lo que tienes Listeners y Alternate Listeners. Tienes dos entradas en /etc/services para ssh y ssh-alt como:

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

lo cual preserva el acceso interno al puerto 22 y crea acceso a través del puerto 4790 para uso externo (asumiendo que deshabilites el puerto 22 y reenvíes el puerto 4790 en tu firewall/enrutador).

1 votos

A menos que necesites utilizar la definición "ssh-alt" en otro lugar, es más fácil poner directamente el número de puerto en ssh.plist y no editar el archivo /etc/services. (Por ejemplo, cambia ssh-alt a 4790). Además, "Listeners Alternativos" puede ser cualquier etiqueta que desees (por ejemplo, "Externo").

0voto

dinesh Puntos 389

Actualización: Ya no funciona en Catalina... la alternativa es copiar el demonio de lanzamiento, renombrar la etiqueta y launchctl load.
No se puede cambiar el puerto ssh en High Sierra
La teoría sigue siendo la misma, así que la dejaré aquí... también está equivocado sobre no poder usar el mismo proceso... puedes si lo cargas con root. Pero no es recomendado ya que entra en conflicto con MacOS.

Tl;Dr:

  1. abre nano /System/Library/LaunchDaemons/ssh.plist y añade esta clave/diccionario dentro de sockets/diccionario.

    Netgate SSH
    
        SockServiceName
        2269
  2. reinicia el demonio de ssh (¡peligro!) launchctl unload /System/Library/LaunchDaemons/ssh.plist && launchctl load /System/Library/LaunchDaemons/ssh.plist

El valor de tu clave Sockets/diccionario debería verse así

Sockets

    Listeners

        SockServiceName
        ssh
        Bonjour

            ssh
            sftp-ssh

    My Little Pony SSH

       SockServiceName
       2269

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X