9 votos

Cómo activar OpenSSh en iOS 10.2

He jailbreak con éxito mi iPhone 6s se ejecuta en iOS 10.2.

He instalado OpenSSH a través de Cydia y he cambiado mi contraseña por defecto a través de MobileTerminal.

El único problema es que cuando ejecuto ssh root@my_iPhone_ip_addr se cuelga y nunca se conecta.

He probado la aplicación SSH toggle springboard, sin embargo, todavía se cuelga.

¿Hay alguna forma de habilitar SSH en mi teléfono mediante un comando de terminal o de alguna otra manera?

9voto

siva Puntos 23

6voto

Colin Puntos 151

Deberías usar el Dropbear incorporado. A partir de Yalu Beta 6, necesitas primero SSH sobre USB. Después de cambiar tu contraseña puedes habilitar Dropbear en otras interfaces.

Linux o MacOS:

  1. Descargue los binarios de gandalf (no tuve suerte al compilarlos) de la página ocaml-usbmux página de github. MacOS: gandalf_darwin_10_11_x86_64
  2. Conecta tu dispositivo mediante un cable USB y búscalo.
  3. Pon el udid en un archivo de mapeo. Asegúrate de que el device_port 22 (ssh) está mapeado.
  4. Ejecuta gandalf con tu archivo de mapeo
  5. SSH al puerto_local correspondiente al puerto_dispositivo 22 en su archivo de asignación.
  6. Inicia sesión con la contraseña alpine.
  7. ¡¡¡CAMBIA TU CONTRASEÑA!!!

Escanear

$ gandalf

Ejemplo de archivo de asignación

[{"udid":"9cdfac9f74c5e18a6eff3611c0927df5cf4f2eca",
  "name":"i11", "forwarding": [{"local_port":2000, "device_port":22},
                               {"local_port":3000, "device_port":1122}]
                               }]

Ejecutar Gandalf con el archivo de asignación

$ gandalf -m myMappingFile.txt

SSH al puerto 2000

$ ssh mobile@localhost -p 2000

Cambiar contraseña(s)

$ passwd
$ su
$ passwd root

Ahora que estás en tu dispositivo iOS ( tu contraseña ha sido cambiada, ¿verdad? ) puedes habilitar Dropbear en otras interfaces de la siguiente manera.

  1. Crea un archivo LaunchDaemon para lanzar una segunda instancia de Dropbear.
  2. Reiniciar o utilizar launchctl load

Crear archivo LaunchDaemon:

$ cd /Library/LaunchDaemons
$ cat <<EOF > ssh10022.plist

Pega esto en el terminal:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>SSH port 10022</string>
    <key>Program</key>
    <string>/usr/local/bin/dropbear</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/dropbear</string>
        <string>-F</string>
        <string>-R</string>
        <string>-p</string>
        <string>10022</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Escriba Ctrl-D para finalizar la entrada. Esto crea ahora el archivo ssh10022.plist

Reinicie o utilice launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Problemas:

A Dropbear no le gustan los permisos por defecto de iOS en el directorio de inicio del móvil, por lo que la autenticación con clave SSH no funciona. Después de cada reinicio tengo que iniciar sesión con contraseña y arreglar los permisos:

$ chmod go-w /var/mobile

Para depurar Dropbear: Redirige los logs de Dropbear a stderr (el ejemplo de abajo ejecuta otra instancia en el puerto 10023).

$ dropbear -E -p 10023

6voto

No se puede conectar a ssh a través de wifi con el 10.2 Jailbreak. Tienes que hacer ssh por usb. Hay varias opciones pero la más fácil es usar iproxy .

  1. Instalar iproxy

    brew install libimobiledevice

  2. En el terminal ejecute ahora el siguiente comando.

    iproxy 2222 22

    Esto le permitirá reenviar todo el tráfico del puerto 2222 al puerto 22 a través de USB

  3. Ahora puedes conectarte al iPhone ejecutando ssh

    ssh root@localhost -p 2222

Observe que se conecta a localhost no la dirección ip de tu teléfono. Si todo ha ido bien, usted debe ser presentado con el símbolo del sistema ssh.

Si no funciona, compruebe si ssh se está ejecutando en el iPhone ejecutando

telnet <iphone-ip-address-here> 22

Si no puede conectarse asegúrese de instalar el openssh de Cydia.

3voto

Pecon Puntos 3

@Colin Tiene una gran respuesta para el Yulu Jailbreak, pero hice las cosas un poco diferente que puede ser útil para la gente. Su respuesta se centra en la creación de un nuevo demonio con un nuevo nombre para que efectivamente usted tiene dos demonios que ejecutan SSH. Uno para el USB y otro para otras conexiones TCP. Yo quería un listener que escuchara en todas las interfaces. También estaba en Windows y necesitaba algo que funcionara con eso, lo que Galdolf no hizo. Como resultado me fui con un Python script que yo bifurcado para asegurarme de que nunca me desaparezca.

Para utilizarlo, ejecute:

python usbmuxd\pythonclient\tcprelay.py -t 22:2222

Lo anterior asigna el puerto local 2222 al puerto remoto 22. Una vez configurado esto, puede utilizar su utilidad SSH favorita para conectarse. Yo utilicé Masilla .

  • Host: 127.0.0.1
  • Puerto: 2222

El nombre de usuario por defecto es "Root" y la contraseña "alpine", pero también se puede utilizar un nombre de usuario "mobile" y una contraseña "alpine" para conectarse.

NOTA: Si usted no sabe la contraseña de Root, utilice Filza para cambiar los permisos de /etc/master.passwd a 666, a continuación, a través de SSH como usuario móvil, o utilizando su editor de archivos favorito, edite ese archivo para copiar el hash de "móvil" a "Root" para que las contraseñas sean las mismas. (El hash para "alpine" es "/smx7MYTQIi2M", si es necesario). A continuación, debe ser capaz de iniciar sesión como Root, o utilizar su.

Una vez que hayas iniciado sesión, tendrás que encontrar las copias de droplist.plist que están actualmente en tu máquina. Probablemente hay maneras más eficientes de hacer esto, pero he utilizado el siguiente comando:

find . | grep dropbear.plist

Lo que dio como resultado:

./Library/LaunchDaemons/dropbear.plist
./private/var/containers/Bundle/Application/023FF836-8A0A-4593-A578-6801F2A3F34D/yalu102.app/dropbear.plist

La primera entrada es el demonio activo, pero la segunda es más importante. Es el demonio que Yulu pone en su lugar cada vez que ejecuta el Jailbreak (Que tiene que hacer con cada reinicio). Si sólo editas /Library/LaunchDaemons/dropbear.plist, será reemplazado cada vez que reinicies.

Como resultado vamos a editar el que viene empaquetado con Yulu, pero si cat el archivo te darás cuenta de su en un formato binario PLIST. Para arreglar esto necesitamos Servicios Erica para obtener plutil. A continuación, puede ejecutar:

plutil -xml dropbear.plist

Esto convertirá el dropbear.plist a formato XML. Una vez hecho esto, puedes editar el archivo en cualquier editor de texto. Yo utilicé nano para hacer la edición real.

Por ejemplo

nano dropbear.plist

Cuando estés editando el archivo querrás deshacerte del "localhost:" de la última entrada de cadena. Esto hará que el listener se ejecute en todas las interfaces en lugar de sólo en la interfaz loopback (que sólo está disponible a través de USB). Como resultado, el archivo se convierte en:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>ShaiHulud</string>
        <key>Program</key>
        <string>/usr/local/bin/dropbear</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/dropbear</string>
                <string>-F</string>
                <string>-R</string>
                <string>-p</string>
                <string>22</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

Una vez hecho esto, querrás volver a poner el archivo en formato binario:

plutil -binary dropbear.plist

En este punto te sugiero reiniciar el dispositivo y validar que el archivo dropbear.plist de Yalu se ha copiado correctamente cuando vuelvas aJailbreak:

Por ejemplo

reboot

Después de reiniciar deberías poder utilizar SSH utilizando la dirección IP de tu teléfono y el puerto estándar 22.

Por ejemplo

  • Host: (IP Desde Ajustes -> WiFi -> (NOMBRE WIFI)
  • Puerto: 22

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