¿Qué opciones existen para los clientes de tunelización SSH en iOS?

Necesito una solución que funcione sin jailbreak , pero las respuestas que incluyen que pueden ayudar a otros son bienvenidas, pero es posible que no se seleccionen como la respuesta.

En Linux y en OSX, uso ssh en la línea de comandos para abrir túneles ssh y poder ejecutar aplicaciones cliente-servidor de forma segura.

Necesito hacer el equivalente en ios (ejecutar algún tipo de túnel en segundo plano, mientras ejecuto una aplicación cliente a través de ese túnel).

Qué herramientas u opciones existen y enumerar las versiones de iOS compatibles sería aún más útil si puede proporcionar ese nivel de detalle.

¿Cómo puedo configurar un servicio de tunelización ssh en iOS?

Respuestas (5)

iSSH admite la apertura de túneles. Por ejemplo, puedo establecer un túnel en el puerto local 4444 que apunta a una dirección IP y al puerto 80. Al abrir localhost:4444 en Safari, se carga ese sitio web a través del túnel. iSSH también tiene un buen soporte para configuraciones guardadas y autenticación de clave pública.

Según las reglas de la tienda de aplicaciones, iSSH solo puede mantener la conexión abierta durante un máximo de 10 minutos en segundo plano, por lo que después de 9 minutos más o menos recibiré una notificación y el túnel se cerrará si no vuelvo a cambiar a iSSH lo suficientemente rápido.

A partir de 2015, iSSH ya no está disponible. Es probable que exista la misma funcionalidad en otros clientes iOS SSH, pero yo no he probado ninguno.

ty por la respuesta detallada! Tal vez se necesite una fuerte competencia de otros sistemas operativos para que Apple elimine este tipo de restricciones tontas en el futuro...
Dudo que veas desaparecer esta restricción en el corto plazo. La principal razón de su existencia es la duración de la batería. Las tareas mínimas en segundo plano significan que los usuarios pueden dedicarse a sus negocios de manera segura sin preocuparse de que otras aplicaciones agoten su batería. En un dispositivo que efectivamente solo tiene un programa ejecutándose a la vez, realmente tiene bastante sentido. El problema es que está optimizando el comportamiento de los usuarios , no facilitando la vida de los desarrolladores.
Ya no puedo encontrar iSSH en la App Store...
¿Hay algún lugar donde pueda encontrar la aplicación iSSH? ¿Algún enlace?
Parece estar muerto ahora y la última versión que tuve tuvo algunos problemas. Buscaría en otro lado, pero no puedo recomendar nada específico.
Serverauditor parece funcionar bien para mí e incluye la funcionalidad de reenvío de puertos

Si está buscando una aplicación para configurar el reenvío de puertos locales como:

ssh -f -L 3000:talk.google.com:5222 home -N

Puede verificar SSHTunnel , le permite administrar fácilmente y controlar con precisión sus túneles ssh. Puede crear y compartir el proxy SOCKS5 (también conocido como reenvío de puerto dinámico) o configurar un reenvío de puerto local.

Además, puede especificar manualmente el puerto local para vincular, configurar el tiempo de espera de la conexión, ver registros y estadísticas, etc.

Aplicación de redirección de puertos para iOS

Desafortunadamente, esta aplicación no se mantiene activamente. Además, ya no es compatible con la ejecución en segundo plano, lo que es bastante malo y lo hace casi inutilizable, especialmente con la muy mala UI/UX del navegador interno.
Resuelva estos problemas :)

vSSH admite la tunelización. Puede configurar la tunelización en la sección "Reenvío de puertos" de la configuración de conexión. Se admite el reenvío local, remoto y dinámico (proxy SOCKS).

Puede usar túneles incluso sin abrir una sesión SSH (en este caso, los permisos de shell no son necesarios para el usuario ssh).

Debido a la limitación de iOS, la aplicación puede funcionar en segundo plano solo durante 10 minutos (iOS 5,6) o 3 minutos (iOS 7). vSSH le recuerda este tiempo de espera a través de notificaciones.

¡Bienvenido a Ask Different! Lea el centro de ayuda con respecto a la autopromoción e incluya un descargo de responsabilidad si es el autor del producto en su respuesta.

Esto no es posible según las reglas actuales de la App Store de iOS (y es poco probable que esto cambie en un futuro previsible). Las aplicaciones están muy limitadas en lo que pueden hacer en segundo plano, y no se permitiría mantener el tipo de conexión persistente que requiere un túnel SSH.

Algunas aplicaciones (como los clientes VNC) tienen una capacidad de tunelización SSH incorporada para evitar esto, pero si las aplicaciones que está usando no la incluyen, la única opción (aparte del jailbreak) es usar el iOS incorporado. Capacidad VPN. No es compatible con SSH, pero sí con L2TP/IPSec, PPTP y algunas otras variantes .

Olvidé mencionar que no estoy buscando vender mi aplicación para el público (en la App Store), esta es una aplicación interna para uso personal. Si realmente resulta que esto no es posible en ios, probablemente cambiaré a Android (estoy bastante seguro de que es posible allí, pero tendré que confirmarlo). Tiendo a ser independiente de la plataforma...
Bueno, aunque es posible que su aplicación no esté sujeta a las reglas de la tienda de aplicaciones, cualquier aplicación de terceros de la tienda lo estará. Lo que significa que, a menos que haga jailbreak, no puede hacerlo con una aplicación de terceros . Por supuesto, podría usar una biblioteca SSH en su aplicación para incluir la funcionalidad SSH directamente, pero cómo hacerlo es una pregunta de programación, más apropiada para StackOverflow .
+1 para esa alternativa (ty, lo consideraré antes de pasar a Android)... ...Estoy empezando a ver por qué a algunos desarrolladores no les gusta desarrollar en este tipo de entorno. También gracias por la sugerencia de VPN: configurar un servidor VPN en Linux puede ser menos complicado que intentar obtener un túnel ssh en ios.

Lo tengo funcionando para un cliente jabber (más o menos) con la aplicación vssh en un servidor Ubuntu. Una vez que la sesión de SSH está abierta, lanzo top o las miradas para mantener la sesión activa, pero parecerá inactiva después de 3 minutos. Después de eso, necesito cambiar a la aplicación vssh y luego volver al cliente jabber y funcionará durante otros 3 minutos. No es la mejor solución para chatear, pero funcionará en un apuro.