¿Quiso decir cambiar el puerto del servidor o el puerto de recepción del cliente? Editar: Ok, borré mi sugerencia. Favorito
Polym
Quiero especificar el puerto del cliente
kwagjj
3
@kwagjj te refieres al puerto de origen? Si es así, no, no puede controlar el puerto de origen.
Patrick
Respuestas:
15
Eso no es fácilmente posible. Cómo se puede hacer eso depende de dónde se verá el puerto de origen: también localmente, o ¿es suficiente si es el puerto correcto desde la perspectiva de la red externa?
Puede ejecutar el cliente SSH en un contenedor LXC. Nunca lo he hecho, así que no puedo explicárselo en detalle. Pero crea una interfaz de red virtual y la conecta a este contenedor para que sshuse esta interfaz porque es la única interfaz (externa) que ve.
En el sistema host, debería ser posible detectar que un paquete proviene de esta interfaz. Por lo tanto, puede usar el NAT de Netfilter (SNAT) para reescribir la dirección de origen con algo como:
gracias ... pero creo que esta información está fuera de mi alcance ... pero aún así gracias :) Pero si realmente llego a un callejón sin salida con lo que estoy haciendo ... tal vez me volveré loco responder de nuevo :)
kwagjj
Sí, es realmente difícil encontrar información sobre ese tema. Me enteré sshfsy alguien dijo que funcionaba con este comando, pero no lo creo. Si encuentra la respuesta, ¡avísenos :)!
Polym
@kwagjj Puede ser más fácil (entender) instalar un Linux completo (modo de texto) como una VM real. Si usa esta VM (o una cuenta determinada en ella) solo para SSH, puede hacerlo con VM Netfilter.
Hauke Laging
6
La sintaxis de comando que está buscando quizás es esta. ssh -p XXX usuario @ remotehostip Debe cambiar el orden de las opciones. Pruébalo ahora, funciona para mí. Atentamente.
Una solución simple para esto si está reenviando puertos a través de su enrutador es configurar el puerto de entrada a lo que desee y el puerto local a 22. Su máquina seguirá teniendo conexión ssh en 22 como de costumbre pero para conectarse realmente desde fuera de su red usarías tu puerto de entrada. Si solo está tratando de evitar que los bots golpeen su máquina el 22, esto debería hacerlo.
Esto podría no ayudar a su problema específico, pero me imagino que muchas personas terminan aquí por esta razón.
Respuestas:
Eso no es fácilmente posible. Cómo se puede hacer eso depende de dónde se verá el puerto de origen: también localmente, o ¿es suficiente si es el puerto correcto desde la perspectiva de la red externa?
Puede ejecutar el cliente SSH en un contenedor LXC. Nunca lo he hecho, así que no puedo explicárselo en detalle. Pero crea una interfaz de red virtual y la conecta a este contenedor para que
ssh
use esta interfaz porque es la única interfaz (externa) que ve.En el sistema host, debería ser posible detectar que un paquete proviene de esta interfaz. Por lo tanto, puede usar el NAT de Netfilter (SNAT) para reescribir la dirección de origen con algo como:
Por supuesto, esto no funciona (o se vuelve más complicado) si se conecta a puertos diferentes del 22.
fuente
sshfs
y alguien dijo que funcionaba con este comando, pero no lo creo. Si encuentra la respuesta, ¡avísenos :)!La sintaxis de comando que está buscando quizás es esta. ssh -p XXX usuario @ remotehostip Debe cambiar el orden de las opciones. Pruébalo ahora, funciona para mí. Atentamente.
fuente
Una solución simple para esto si está reenviando puertos a través de su enrutador es configurar el puerto de entrada a lo que desee y el puerto local a 22. Su máquina seguirá teniendo conexión ssh en 22 como de costumbre pero para conectarse realmente desde fuera de su red usarías tu puerto de entrada. Si solo está tratando de evitar que los bots golpeen su máquina el 22, esto debería hacerlo.
Esto podría no ayudar a su problema específico, pero me imagino que muchas personas terminan aquí por esta razón.
fuente
Propuse una opción -Z portnum ...
Fuente aquí: https://github.com/Zibri/openssh-portable
Y aquí está la solicitud de extracción: https://github.com/openssh/openssh-portable/pull/130
fuente