6 votes

Impossible d'effectuer un ssh Root@localhost sur un iPad jailbreaké avec iOS 8.1

J'ai jailbreaké (pas pour les pirates) mon iPad 4 (iOS 8.1) il y a plusieurs semaines et j'ai constaté qu'il était impossible de ssh Root@127.0.0.1 via Prompt 1 ou 2 sur l'iPad. Même je ne peux pas me connecter via l'IP du réseau local (par exemple 192.186.X.X). Cependant, il n'y a pas de problème si j'utilise ssh Root@LAN IP sur mon iPhone ou Mac dans le même LAN.

À propos, j'ai pu faire un ssh Root@localhost sur un iPad jailbreaké lorsqu'il fonctionnait sous iOS 6.1. Il n'y a pas de problème si je me suis déjà connecté par ssh à l'iPad sur mon Mac, et si je me connecte à nouveau par ssh à Root@127.0.0.1.

La sortie de netstat sur l'iPad :

Surface-Pro:~ root# netstat -an|grep .22  
tcp4       0     28  172.22.29.64.22        172.22.26.158.47927    ESTABLISHED  
tcp4       0      0  172.22.29.64.50293     17.110.228.29.5223     ESTABLISHED  
tcp4       0      0  *.22    

Quelqu'un connaît-il la raison pour laquelle l'iPad ne peut pas se connecter à lui-même dans les applications ? (Peut-être que le modèle sandbox/containers a été modifié depuis iOS 8 ?)

7voto

Tyilo Points 5337

Une meilleure alternative que de lancer Prompt en tant que Root, est de créer une autre sshd instance écoutant un port supérieur à 1024.

Dans cet exemple, j'ai utilisé le port 10022.

  • Copie /Library/LaunchDaemons/com.openssh.sshd.plist a /Library/LaunchDaemons/com.openssh.sshd2.plist
  • Changez le Label et le SockServiceName sur com.openssh.sshd2.plist en ajoutant 2 à ssh / sshd :

    • com.openssh.sshd -> com.openssh.sshd2
    • ssh -> ssh2
  • Ajoutez les lignes suivantes à /etc/services :

    ssh2 10022/udp # SSH Remote Login Protocol ssh2 10022/tcp # SSH Remote Login Protocol

Différences pour les versions iOS :

iOS 12.1.2 / unc0ver, iOS 13.3.1 / checkra1n :

  • de cette réponse choix n°2.
  • copiez la plist comme ci-dessus, mais modifiez le paramètre SockServiceName sur com.openssh.sshd2.plist de ssh pour simplement le nouveau numéro de port 10022 . La section ressemblera à ceci :

    <key>Sockets</key> <dict> <key>Listeners</key> <dict> <key>SockServiceName</key> <string>10022</string> </dict> </dict>

iOS 12.4 / chimera.sh

  • ne pas copier le fichier plist
  • à la place, modifiez /etc/ssh/sshd_config comme Root. Détails de cet article
  • supprimer le commentaire devant Port 22
  • ajouter une autre ligne en dessous pour Port 10022

Toutes les versions d'iOS :

  • Redémarrez l'appareil (ou launchctl load com.openssh.sshd2.plist si vous ne voulez pas redémarrer)
  • Se connecter via le port 10022 au lieu de 22

Si vous avez installé bash , coreutils et sed vous pouvez l'automatiser avec ce script :

#!/bin/bash
cd /Library/LaunchDaemons
cp com.openssh.sshd{,2}.plist
sed -i'' '/<key>Label<\/key>/{N;s/sshd/sshd2/}' com.openssh.sshd2.plist
sed -i'' '/<key>SockServiceName<\/key>/{N;s/ssh/ssh2/}' com.openssh.sshd2.plist

cd /etc
if ! grep ssh2 services; then
    cat >> services <<EOF
ssh2              10022/udp     # SSH Remote Login Protocol
ssh2              10022/tcp     # SSH Remote Login Protocol
EOF
fi

0 votes

Cela fonctionne avec Coda 2 sur l'iPad ! Ma solution ci-dessous ne fonctionne pas car Coda 2 n'aime pas être lancé comme une application racine.

0 votes

Avertissement : Tenté ceci sur iOS 9.3.3 avec le semi-jb de Pangu et cela a cassé le Jailbreak. Je n'ai pas pu entrer en mode jailbreaké et j'ai dû restaurer mon appareil :\.

4voto

Colin Points 340

La raison en est qu'iOS 7 et 8 mettent les applications de l'App Store en sandbox. La solution de contournement la plus simple est la suivante (adaptée de http://blog.funroll.co/ios-7-Jailbreak-enable-ssh-to-localhost )

  1. Installer OpenSSH via Cydia

  2. Connectez-vous au même réseau wifi que votre Mac.

  3. Récupérez votre adresse IP dans Paramètres -> Wifi -> icône (i).

  4. Ouvrez Terminal sur votre mac et ssh Root@

  5. Le mot de passe par défaut est alpine. Utilisez passwd pour le changer si vous ne l'avez pas encore fait.

  6. définir un mot de passe de connexion pour le nom d'utilisateur mobile si ce n'est pas encore fait

    passwd mobile

  7. allez dans le répertoire des applications

    cd /var/mobile/Containers/Bundle/Application/ <-- iOS 8

    cd /var/mobile/Applications <-- iOS 7

  8. trouver le Prompt !

    ls ./*/*/Prompt*

    Cela vous donnera quelque chose comme

    ./3EE7B167-AF7B-497B-9C8E-EAC96F4AF0D9/Prompt 2.app/Prompt 2

  9. move Prompt !

    mv "./3EE7B167-AF7B-497B-9C8E-EAC96F4AF0D9/Prompt 2.app" /Applications/

    (Utilisez votre propre chemin, au lieu de 3EE7B167-AF7B-497B-9C8E-EAC96F4AF0D9)
    Vous pouvez également chown root:admin -R /Applications/Prompt\ 2 .

  10. Allez sur l'écran d'accueil de l'appareil et supprimez l'icône de Prompt.

  11. Redémarrez en maintenant les touches home et sleep/wake jusqu'à ce que l'icône Apple apparaisse.

  12. Connectez-vous à nouveau à l'appareil en utilisant ssh mobile@(your-ip-here). (Utilisez le mot de passe que vous avez créé à l'étape 6).

  13. Exécutez uicache : su -c uicache mobile

  14. Revenez à l'écran d'accueil et lancez Prompt (s'il ne vous laisse pas vous connecter à localhost, redémarrez l'appareil à nouveau)

  15. Entrez l'ip comme 127.0.0.1 ou localhost, le nom d'utilisateur Root ou mobile selon votre préférence. J'utilise Root pour ne pas avoir à faire des sudo excessifs.

  16. Connectez-vous et profitez d'une expérience utilisateur de haute qualité en vous connectant à localhost.

  17. Utilisez Panic Sync pour restaurer vos paramètres (clés et serveurs) !

-1voto

Brian Points 1

Si vous changez le port 22 en 50022 (par exemple), cela fonctionne bien pour moi.

0 votes

Malheureusement, j'ai essayé vim /etc/ssh/sshd_config le changement Port à 2222 puis launchctl unload com.openssh.sshd.plist && launchctl load com.openssh.sshd.plist mais ça n'a pas marché.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X