Tengo dos computadoras detrás del mismo enrutador. Llamémosles A y B.
A puede enviar SSH a B de la siguiente manera: ssh usr@<internal ip of computer>
B puede enviar mensajes SSH a A haciendo lo mismo, pero se debe usar la IP externa. He reenviado el puerto 22 de mi enrutador a la IP de la computadora A, por lo que todo tiene sentido para mí.
Sin embargo, también quiero reenviar el puerto 26 a la computadora B, y SSH desde fuera de la red usando la IP externa para ambos, pero especificando el puerto 22 o 26, para seleccionar efectivamente qué computadora usar.
He intentado permitir el puerto 26 a través de la salida de iptables en A y la entrada de B, pero eso no pareció funcionar. También he reenviado el puerto 26 a la IP interna de B (a través del enrutador), como lo hice con 22 para A.
Esto es lo que obtengo cuando intento SSH de A a B usando la IP externa y el puerto 26:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.
Versiones:
A = OpenSSH_5. 9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 de marzo de 2012
B = OpenSSH_6. 0p1 Debian-4, OpenSSL 1.0.1 c 10 de mayo de 2012
A tiene Ubuntu 12.04, B es una Raspberry Pi con Raspbian.
EDITAR: Algo que olvidé poner: Intenté cambiar el archivo de configuración SSH (descubrí que es /etc/ssh/ssh_config) No comento (suprimido el # la línea con Port y cambiado 22 a 26. Me dio el mensaje de conexión rechazada todavía. (Reinicié en vano.)
Si está en un sistema Linux y desea conectarse a un servidor SSH en el puerto 26, puede usar el siguiente comando.
ssh user@192.168.1.1 -p 26
Nota:
Reemplace la IP del servidor con la dirección IP o el nombre DNS de su servidor.
Cambie su número de puerto como lo ha configurado.
si está utilizando el puerto personalizado SSH, se permitirá el mismo puerto para la conexión saliente y entrante en el firewall, de lo contrario, la conexión no se establecerá
Parece que no está ejecutando SSH en el puerto 26 en la segunda máquina. Puede cambiar el número de puerto de esa máquina a 26.
Editar /etc/ssh/sshd_config y no olvide reiniciar SSH (service sshd restart) o dejarlo en 22, pero reenvíe el puerto 26 en el enrutador al puerto 22 en la segunda máquina. Además, no olvide cambiar la configuración del firewall en la segunda máquina para permitir el paso de las conexiones.
Utilizo el puerto 22 solo para el acceso SSH a la intranet.
Para el acceso a través de Internet utilizo un puerto personalizado (inusual).Esto tiene el beneficio de que reduzco la carga producida generada por los niños de script que están escaneando el puerto 22 en busca de "nombres de usuario bien conocidos".
El externo los procesos sshd son controlados por xinetd y corriendo en paralelo a la internosshd process.In en el siguiente ejemplo utilizo el puerto 12345:
Puede cambiarlo a cualquier número de puerto libre disponible en su sistema.Tal vez un valor más alto hará que también sea un poco más improbable que este puerto sea escaneado por un "escaneo rápido de puertos".
El xinetd la configuración es:
service ssh-external{ socket_type = stream wait = no protocol = tcp type = UNLISTED user = root server = /usr/sbin/sshd server_args = -i -f /etc/ssh/external-sshd.config port = 12345 log_on_failure += USERID}
Archivo /etc/ssh/external-ssdh.config puede ser una copia de su habitual sshd configuración.Asegúrese de que las siguientes instrucciones estén configuradas:
Port 12345AddressFamily inet
También sugiero aplicar la autenticación de clave pública y deshabilitar la autenticación de contraseña para el acceso a Internet:
PasswordAuthentication noPermitEmptyPasswords noChallengeResponseAuthentication no
Como he explicado en un respuesta relacionada, el cliente ssh permite especificar el formato URI como ssh://user@host:1234. Por ejemplo:
ssh ssh://myuser@mydomain.com:2222
donde 2222 es el número de puerto. Sustituya el número de puerto que desea utilizar en su lugar. Por supuesto, recuerde que para conectarse al puerto especificado, el servidor ssh (en el host al que está intentando conectarse) debe escuchar en el puerto especificado en primer lugar
No es una buena idea ejecutar ssh en el puerto predeterminado (TCP / 22), ni reenviar desde WAN IP 22 a cualquier puerto que esté usando ssh-server en LAN IP.
Para hacer que el servidor ssh escuche en cualquier puerto dado, debe
Editar en /etc/ssh/sshd_config (tenga en cuenta el d) de #Port 22 a Port 26. Es decir, descomente y cambie el puerto. Mejor que 26 sería algo al azar arriba (por debajo de 65535), como 42895. También considere cambiar a PermitRootLogin no.