Domanda:
Impossibile eseguire ssh root @ localhost su iPad jailbroken con iOS 8.1
fdb713
2014-12-04 14:46:43 UTC
view on stackexchange narkive permalink

Ho eseguito il jailbreak (non per i pirati) del mio iPad 4 (iOS 8.1) diverse settimane fa e non è stato possibile eseguire ssh root@127.0.0.1 tramite Prompt 1 o 2 su iPad. Anche io non riesco a connettermi tramite IP LAN (ad esempio 192.186.X.X). Tuttavia, non ci sono problemi se eseguo ssh root @ LAN IP sul mio iPhone o Mac nella stessa LAN.

A proposito, sono riuscito a ssh root @ localhost su iPad jailbreak quando era in esecuzione iOS 6.1 . Va bene anche se ho già effettuato l'accesso ssh all'iPad sul mio Mac e ssh root@127.0.0.1 di nuovo.

L'output di netstat su 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 

Qualcuno sa il motivo per cui iPad non riesce a connettersi a se stesso nelle app? (Forse il modello sandbox / contenitori è stato modificato da iOS 8?)

Tre risposte:
Tyilo
2015-01-06 21:33:16 UTC
view on stackexchange narkive permalink

Un'alternativa molto migliore rispetto a eseguire Prompt come root, è creare un'altra istanza sshd in ascolto su una porta superiore a 1024.

In questo esempio ho usato la porta 10022.

  • Copia /Library/LaunchDaemons/com.openssh.sshd.plist in /Library/LaunchDaemons/com.openssh.sshd2.plist
  • Cambia l ' Etichetta e SockServiceName in com.openssh.sshd2.plist aggiungendo 2 a ssh / sshd:

    • com.openssh.sshd -> com.openssh.sshd2
    • ssh -> ssh2
  • Aggiungi le seguenti righe a /etc/services:

 ssh2 10022 / udp # Protocolli di accesso remoto SSHsh2 10022 / tcp # Protocollo di accesso remoto SSH 

Differenze per le versioni iOS:

iOS 12.1.2 / unc0ver, iOS 13.3.1 / checkra1n:

  • da questa risposta scelta # 2.
  • copia il plist come sopra, ma cambia il SockServiceName in com.openssh.sshd2.plist da ssh semplicemente il nuovo numero di porta 10022 . La sezione sarà simile a questa:
  <key>Sockets< / key><dict> <key>Listeners< / key> <dict> <key>SockServiceName< / key> <string>10022< / string> < / dict>< / dict>  

iOS 12.4 / chimera.sh

  • non copiare il file plist
  • invece, modifica / etc / ssh / sshd_config come root. Dettagli da questo articolo
  • rimuovi il commento davanti a Porta 22
  • aggiungi un'altra riga sotto per Porta 10022

Tutte le versioni di iOS:

  • Riavvia il dispositivo (o launchctl carica com.openssh.sshd2.plist se non desideri riavviare)
  • Connetti tramite la porta 10022 invece che 22

Se hai installato bash , coreutils e sed puoi automatizzarlo con questo script:

  #! / bin / bashcd / Library / LaunchDaemonscp com.openssh.sshd {, 2} .plistsed -i '' '/ <key>Label< \ / key> / {N; s / sshd / {N; s / sshd / 'com.openssh.sshd2.plistsed -i' '' / <key>SockServiceName< \ / key> / {N; s / ssh / ssh2 /} 'com.openssh.sshd2.plistcd / etcif! servizi grep ssh2; quindi cat >> services <<EOFssh2 10022 / udp # Protocolli di accesso remoto SSHsh2 10022 / tcp # Protocollo di accesso remoto SSHEOFfi  
Funziona con Coda 2 sull'iPad!La mia soluzione di seguito non funziona perché Coda 2 non ama essere lanciato come applicazione root.
Attenzione: ho tentato questa operazione su iOS 9.3.3 con il semi-jb Pangu e ha rotto il jailbreak.Non sono riuscito ad entrare in modalità jailbroken e ho dovuto ripristinare il mio dispositivo: \
Colin
2015-01-05 13:39:32 UTC
view on stackexchange narkive permalink

Il motivo è perché iOS 7 e 8 sandbox le app dall'App Store. La soluzione più semplice è di seguito (adattato da http://blog.funroll.co/ios-7-jailbreak-enable-ssh-to-localhost)

  1. Installa OpenSSH tramite Cydia
  2. Connettiti alla stessa rete Wi-Fi del tuo Mac
  3. Prendi il tuo indirizzo IP da Impostazioni -> Wifi -> icona (i)
  4. Apri terminale sul tuo Mac e ssh root @
  5. La password predefinita è alpine. Usa passwd per cambiare se non hai ancora
  6. impostato una password di accesso per il nome utente del cellulare se non hai ancora

    passwd mobile

  7. vai alla directory dell'applicazione

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

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

  8. trova Prompt!

    ls ./*/*/Prompt*

    Questo ti darà qualcosa come

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

  9. sposta Prompt!

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

    (Usa il tuo percorso, invece di 3EE7B167-AF7B-497B-9C8E-EAC96F4AF0D9)
    Puoi anche chown root: admin -R / Applications / Prompt \ 2 .

  10. Vai alla schermata iniziale del dispositivo ed elimina l'icona per il prompt
  11. Riavvia tenendo premuto home e dormi / riattiva finché non vedi il Icona Apple
  12. ssh nel dispositivo utilizzando ssh mobile @ (your-ip-here). (Usa la password che hai creato nel passaggio 6.)
  13. Esegui uicache: su -c uicache mobile
  14. Torna alla schermata principale e avvia Prompt (se non ti consente di connetterti su localhost, riavvia nuovamente il dispositivo)
  15. Inserisci l'ip come 127.0.0.1 o localhost, nome utente root o mobile secondo le tue preferenze. Uso root quindi non devo sudo eccessivamente.
  16. Connettiti e goditi un'esperienza utente di alta qualità con ssh'ing su localhost
  17. Usa Panic Sync per ripristinare le tue impostazioni (chiavi e server)!
Brian
2014-12-31 22:10:26 UTC
view on stackexchange narkive permalink

se modifichi la porta 22 in 50022 (ad esempio) per me funziona bene

Sfortunatamente ho provato `vim / etc / ssh / sshd_config`, cambia * Port * in 2222 quindi` launchctl unload com.openssh.sshd.plist && launchctl load com.openssh.sshd.plist`, ma non ha funzionato.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...