Verwenden von ConnectBot mit Intents

Gibt es eine Möglichkeit, über die Intentionen auf die ConnectBot-Funktionalität zuzugreifen? Ich möchte eine ssh-Session aus meiner Anwendung starten und über Private / Public Key authentifizieren und die Session danach schließen. Ist das mit ConnectBot möglich und wenn ja, wie kann ich die Intents anrufen? Leider habe ich keine Dokumentation zu diesem Thema gefunden 🙁

  • Scrollview mit Paging in Android
  • Kopiere mehrere txt-Dateien in / system mit Android.mk
  • Android 4.3: BLE: Filterverhalten von startLeScan ()
  • Auf langer Klick lösche das Element
  • Android: Löschen Aktivität Stack
  • Verwenden von ProgressDialog in ActionBar (Android)
  • Was ist der Zweck eines Delegationsmusters?
  • Ändern des Benachrichtigungssymbols Hintergrund auf Lollipop
  • Wie dupliziere ich ein SDK-Beispielprojekt in den Arbeitsbereich?
  • Android - Aktivierung der Systemschlüsselverriegelung (aka lock screen)
  • Wie man "Navigation" und "GPS Pointer" -Tasten versteckt, wenn ich auf die Marker auf der Android Google Map klicken
  • Wie kann man das Bild (Bitmap) auf eine bestimmte Größe ändern?
  • One Solution collect form web for “Verwenden von ConnectBot mit Intents”

    Die Antwort auf diese Frage hängt davon ab, was Sie die ssh-Sitzung verwenden möchten: Ist es etwas programmatisches, oder möchten Sie dem Benutzer eine Terminal-Session oder -Konsole zeigen, wo sie beliebige Befehle eingeben können? Diese zweite Option ist zum größten Teil ganz leicht zu unterstützen, wie man aus dem Studium der ConnectBot Manifest sehen kann – die App hat einen Absichtsfilter registriert für die ConsoleActivity die diesem Muster entspricht:

    • Aktion : android.intent.action.VIEW
    • Uri : ssh://user@host:port/#nickname

    … es wird die Sitzung nicht abschließen, aber abgesehen davon wird es alles tun, was Sie spezifiziert haben, indem Sie die eigene Infrastruktur von ConnectBot für die Verbindung verwenden und alle SSH-Schlüssel verwenden, die der Benutzer in der ConnectBot App registriert hat.

    Alternativ können Sie sich über die frühere Option sprechen: Für Ihre App, um einen bestimmten Befehl gegen einen SSH-Server programmatisch auszuführen .

    Dies wird derzeit nicht durch die offizielle Version von ConnectBot unterstützt. Je nach Ihren Anforderungen können Sie sich vorstellen, dass Sie einfach eine Absicht an ConnectBot mit der Adresse eines Servers und einem Befehl, den Sie ausführen möchten, ausschalten. Das wäre nicht zu schwer für ConnectBot zu implementieren und es würde dir die Kopfschmerzen des Lernens zu viel über das ssh-Protokoll sparen. Allerdings ist diese Absicht nicht vorhanden, und wenn es tat , wäre es sehr gefährlich, jede App auf dem Telefon könnte es verwenden, um beliebigen Code mit den Benutzern Anmeldeinformationen auf Remote-Servern auszuführen.

    Was existiert, ist diese Absicht, die ich in einer gepatchten Version von ConnectBot vor ein paar Monaten erstellt habe, um Agit , den Git Client für Android zu unterstützen:

    org.openintents.ssh.BIND_SSH_AGENT_SERVICE

    Diese gepatchte Version von ConnectBot ermöglicht es ConnectBot, wie ein ssh-Agent zu handeln – Ihre App ist verantwortlich für die Verwaltung der ssh-Verbindung, aber Sie können an ConnectBot anrufen, um die notwendigen Anmeldeinformationen zu erhalten – ConnectBot wird Ihnen mitteilen, welche öffentlichen Schlüssel es zur Verfügung hat Die Verbindung und wird die für die Authentifizierung erforderlichen digitalen Herausforderungen unterzeichnen. Die Details des Protokolls sind auf OpenIntents.org , aber im Grunde verwenden Sie die Absicht, an ConnectBot zu binden und eine AIDL-Schnittstelle zu erhalten, die die Funktion ssh-agent bietet:

    org.openintents.ssh.BIND_SSH_AGENT_SERVICE

    Als Sicherheitsvorkehrung muss Ihre App erklären, dass sie diese Berechtigung verwendet, oder sie kann nicht an den Dienst binden:

    org.openintents.ssh.permission.ACCESS_SSH_AGENT

    Die gepatchte Version von ConnectBot kann hier aus dem Android Market heruntergeladen werden:

    https://market.android.com/details?id=com.madgag.ssh.agent

    Der Quellcode für den Patch ist hier:

    http://code.google.com/r/robertotyley-connectbot-ssh-agent/source/list?name=ssh-agent

    Obwohl dies kümmert sich um die Public / Private Key Management, es immer noch lässt Sie mit tatsächlich die Umsetzung der ssh-Verbindung in Ihrer App. Ich würde die sshj- Bibliothek für die ssh-Protokollunterstützung empfehlen, siehe ihr Beispiel für eine einfache 'Befehl' Verbindung:

    https://github.com/shikhar/sshj/blob/v0.6.1/src/main/java/examples/Exec.java

    Die Bouncy Castle Krypto libs werden normalerweise in Java für die Bereitstellung von Verschlüsselungsalgorithmen verwendet, aber die Version, die mit Android geliefert wird, ist verkrüppelt und nicht leicht überschrieben – folglich sollten Sie die Spongy Castle libs für eine Android-freundliche Umpackung der BC libs verwenden:

    https://github.com/rtyley/spongycastle

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.