1 votos

Reenvío de puertos de una conexión SSH en MacOS

He estado intentando utilizar SSH a través de Internet para conectarme a varios ordenadores de mi red. Desafortunadamente, sólo parece funcionar en el equipo que está configurado en el puerto reenviado de 22 (puerto ssh). Esto es lo que he hecho:

Router: Reenvío de puerto 70 -> dirección IP del ordenador

Terminal MacOS:

ssh -L 22(ssh port) : my_external_ip : 70(forwarded port) username@my_external_ip

Se conecta y luego me pide la contraseña de la cuenta "nombre de usuario". Aunque escribo la contraseña correcta, me da "Permiso denegado (públicamente, contraseña)".

Llevo todo el día intentándolo y no lo consigo. Puedo acceder a mi router de forma no local y cambiar el ordenador al que intento acceder para que reenvíe al puerto 22, pero realmente me gustaría una solución mejor.

No estoy muy familiarizado con los comandos bash (¿creo que estos son bash?) y estoy perdido. Afortunadamente he sido capaz de conectarme a mi servidor de almacenamiento a través de SAMBA, pero realmente me gustaría ser capaz de ssh en cada equipo de forma independiente.

1voto

Nate Puntos 220

Si entiendo bien la configuración, estás usando la opción equivocada para controlar por qué puerto hace la conexión. Si el router está reenviando el puerto 70 al puerto 22 del servidor ssh interno al que te quieres conectar, entonces desde el exterior te conectarías con algo como:

ssh -p 70 username@router_external_ip

Tenga en cuenta que estoy usando -p 70 para controlar a qué puerto se conecta en el "servidor" (que en realidad es el router, pero como la conexión entra por el puerto 70 debería ser reenviada al puerto 22 del servidor interno).

Esto es muy diferente de lo que el -L opción lo hace. Lo que -L hace es decirle a ssh que haga un puerto (tunelizado) hacia adelante de su propio después de conectarse al servidor SSH . Añadiendo -L 22:someip:70 dice el ssh programa para escuchar en el puerto 22 de su ordenador local (por defecto, también escucha sólo en la interfaz local de loopback), y si recibe alguna conexión en ese puerto debe reenviarla a través de la conexión SSH al ordenador remoto, con instrucciones de que el ordenador remoto la reenvíe al puerto 70 en someip .

Podrías utilizar una especie de reenvío de puertos, por ejemplo, para hacer un túnel de conexiones de intercambio de archivos a tu servidor de almacenamiento, de modo que no tuvieras que exponer el servidor de almacenamiento directamente en la Internet abierta (lo que probablemente no sea muy seguro). Hay un ejemplo de uso para tunelizar VNC (pantalla compartida) en esta pregunta de stackoverflow .

0voto

Marc Wilson Puntos 146

Cree varias reglas de reenvío en el router, una para cada máquina que esté detrás de él y a la que quiera acceder por SSH. Utilice diferentes puertos de alta como la entrada para cada uno.

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