Zugriff auf die Termux-Benutzerumgebung von anderen Konsolen aus

9

Ich habe vor kurzem angefangen, die erstaunliche Termux Terminal App und Linux-Umgebung zu verwenden. Es bietet eine Fülle von voll funktionsfähigen Terminal-Dienstprogrammen. Es wäre großartig, von anderen Konsolen aus auf diese Dienstprogramme zugreifen zu können, insbesondere wenn sie über sshoder verbunden sind adb shell. Ich habe es geschafft, einige Funktionen verfügbar zu machen, indem ich meine PATHund LD_LIBRARY_PATHUmgebungsvariablen auf die gleichen Werte gesetzt habe, die von der Termux-Shell verwendet werden, aber es gibt Berechtigungsprobleme und es scheint chaotisch.

Gibt es eine Möglichkeit, an einer Termux-Sitzung teilzunehmen? Termux scheint kein SSH-Serverpaket bereitzustellen. Selbst wenn dies der Fall wäre, würde vermutlich dieser Server und damit die von ihm gewährte SSH-Sitzung als separater Benutzer vom Termux-Benutzer ausgeführt, was zu ähnlichen Berechtigungsproblemen führen würde.

Gibt es eine unterstützte Möglichkeit, von anderen Konsolen aus auf die Termux-Benutzerumgebung zuzugreifen?

intuitiv
quelle

Antworten:

11

Termux stellt das opensshPaket bereit , das sowohl den sshClient als auch den sshdServer enthält.

Installieren Sie das Paket mit: apt install opensshund starten Sie den Server mit sshd- es wird standardmäßig auf Port 8022 ausgeführt. Stellen Sie also eine Verbindung mit her her ssh -p 8022 DEVICE_IP, und Sie können die WLAN-IP des Geräts mithilfe von finden ip addr list wlan0.

Die Kennwortauthentifizierung wird nicht unterstützt, daher müssen Sie sie einrichten $HOME/.ssh/authorized_keys.

Nachdem Sie eine Verbindung hergestellt haben, werden Sie als normaler Termux-Benutzer mit korrekt eingerichteten Umgebungsvariablen ausgeführt.

Fornwall
quelle
1
Wow, das sollten sie wirklich in der Paketbeschreibung erwähnen, die nur besagt, dass es sich um eine "sichere Shell zum Anmelden an einem Remote-Computer" handelt.
Intuitiert
Warum kann ich keine Verbindung von einem Remote-Client mit ssh auf einem Smartphone mit sshd termux herstellen, das über eine IP-Adresse (die ich von curl ifconfig.me erhalte) an Port 8022 mit dem Internet verbunden ist? Ist das Problem mit dem Internetprovider verbunden? dass es viele Clients auf einer IP gibt?
user3123159
5
Die Kennwortauthentifizierung wird unterstützt. Sie müssen ausgeführt werden passwd, um ein neues Kennwort für Ihren SSH-Server festzulegen. Was jedoch nicht funktioniert, sind Benutzernamen (dh jeder kann sich mit jedem Benutzernamen mit diesem einen Passwort anmelden), AFAIK.
MAChitgarha
3

Sie müssen opensshin termux installieren, indem Sie ausführen

pkg install openssh

und generieren Sie dann auf dem Gerät, von dem aus Sie ssh möchten, einen öffentlichen ID-Schlüssel.

ssh-keygen

und einfach bestätigen und nach unten ändern, dann tun

cat ~/.ssh/id_rsa.pub

und kopieren Sie die Ausgabe in ~/.ssh/authorized_keysund starten Sie den sshdServer neu und versuchen Sie, ssh,

Wenn Sie auf Fehler stoßen, überprüfen Sie die authorized_keysDatei und stellen Sie sicher, dass sich Ihr öffentlicher Schlüssel in einer Zeile befindet

Sie müssen diese Schritte oben ausführen, da Termux sshdkeine Kennwortanmeldungen unterstützt (IE, ssh user@ip_addressdann Eingabe eines Kennworts).

Sie müssen in termux ssh mit

ssh termux-ip-here -p 8022
Zachary Martin Duncan
quelle
2

Auf Knien und Bogen,

Ip_Address_Of_Remote_Host = 192.168.1.20

(Angenommen, Sie haben einen Schlüssel auf dem Termux-Computer mit generiert

ssh-keygen -t rsa

Zwischen ssh-keygen und -t befindet sich ein Leerzeichen, und der Schlüssel wurde mithilfe der Anmeldedetails des Computers nach Remote_Host kopiert

ssh-copy-id [email protected]).

Zwischen ssh-copy-id und user befindet sich ein Leerzeichen

Sie sollten sich jetzt ohne Verwendung eines Kennworts beim Remote-Host anmelden können.

ssh [email protected]

Der oben generierte rsa-Schlüssel ist nicht der Schlüssel, den Sie in die Datei authorized_keys auf dem Termux-Computer einfügen.

Das Problem ist, die

id_rsa.pub

Datei von Ihrem Remote-Computer auf den Termux

~ / .ssh / autorisierte_Tasten

Datei auf dem lokalen System (Telefon) Die Lösung, die ich verwendet habe, war scp. Dieser Befehl verwirrt viele Leute, aber wenn man ihn von der Position aus betrachtet, dass es sich nur um einen cp-Befehl handelt, verschwindet seine Mystik

cp file_to_copy where_to_copy_file

Dieser Befehl wird vom Termux-Computer (Telefon) ausgeführt.

scp [email protected]: /home/user/.ssh/id_rsa.pub ~ / .ssh / autorisierte_keys

Zwischen id_rsa.pub und ~ / befindet sich ein Leerzeichen

Der Pfad zu Ihrem .ssh-Verzeichnis kann unterschiedlich sein. Stellen Sie jedoch sicher, dass es sich um den richtigen Pfad handelt, den Sie in den obigen Befehl eingegeben haben.

Wenn Sie immer noch Probleme beim Anmelden haben, navigieren Sie zu

Datei /data/data/com.termux/files/usr/etc/ssh/sshd_config

Aktivieren Sie diese beiden Schlüsselpaare

ChallengeResponseAuthentication-Nr

PubkeyAuthentication ja

Michael Hughes
quelle
Für alle, die ein wenig mit SSH vertraut sind, sollte dies unkompliziert sein. Für diejenigen, die noch keine Erfahrung mit GNU / Linux-Pfaden haben, sollten Sie sich darauf konzentrieren. Meine nächste Anlaufstelle ist zu prüfen, ob eine X-Weiterleitung möglich ist. Dann eröffnet sich die Möglichkeit, die Produktivitätsanzüge auf Ihrem Desktop zu verwenden. Wenn Sie jedoch auf den Termux-Computer schreiben, können Sie die LibraOffice-Software auf dem Termux-Computer verwenden Aber lassen Sie es auf dem Desktop ohne Verzögerung / Latenz anzeigen. Dies ist die Leistung von GNU / Linux.
Michael Hughes
2

Dies sind Android-Befehle, die unter Termux ausgeführt und ein SSH-Client und -Server eingerichtet werden können, um eine Verbindung von Ihrem Desktop zu Ihrem Android-Gerät und umgekehrt herzustellen. Dies gilt nicht für den auf Ihrem Desktop-Computer eingerichteten SSH-Server und -Client.

Verwenden des SSH-Servers https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Hier können Sie ein Passwort für Ihre Schlüssel erstellen und damit eine Verbindung zu Ihrem Computer herstellen, wenn Sie ein Passwort möchten. Andernfalls lassen Sie sie leer und es sind keine anderen Kennwörter erforderlich als Ihr DESKTOP-Benutzercomputerkennwort.

Wie kann ich ein passwortloses SSH-Login einrichten? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Auf diese Weise können Sie eine SSH-Verbindung von Ihrem ANDROID zu Ihrem DESKTOP per SSH-Verbindung ohne Ihr ANDROID-Benutzerkennwort herstellen (da Kennwörter vom termux sshd-Server nicht unterstützt werden).

3 Schritte zum Durchführen der SSH-Anmeldung ohne Kennwort mit ssh-keygen & ssh-copy-id https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using- ssh-keygen-ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Auf diese Weise können Sie ohne Ihr ANDROID-Benutzerkennwort eine Verbindung von Ihrem DESKTOP zu Ihrer ANDROID per SSH-Verbindung herstellen (wenn Sie das Kennwort Ihres Computerbenutzers verwenden möchten, überspringen Sie diesen Befehl).

  1. Erste Option Zugriff auf die Termux-Benutzerumgebung von anderen Konsolen aus Zugriff auf die Termux-Benutzerumgebung von anderen Konsolen aus

    scp [email protected]:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Zweite Option Wie füge ich SSH-Schlüssel zur Datei authorized_keys hinzu? /ubuntu/46424/how-do-i-add-ssh-keys-to-authorized-keys-file

    cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    

Skripte und Hinweise zum Einrichten und Verwenden von SSHd auf Ihrem Android-Gerät mit Termux https://github.com/tomhiggins/TermuxSSHDsetup

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh leere Passphrase, fragt aber immer noch danach /server/845623/ssh-blank-passphrase-but-still-asking-for-it

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/known_hosts
chmod 600 ~/.ssh/authorized_keys

Starten Sie den Server, indem Sie sshd ausführen (wodurch er am Standardport 8022 gestartet wird) und ausführen logcat -s 'syslog:*', um die Protokollausgabe des Serverprozesses anzuzeigen. Führen Sie pkill sshd aus, um den Server zu stoppen.

logcat -s 'syslog:*'
pkill sshd
sshd

Zum Schluss von einem zum anderen verbinden und umgekehrt:

Verbindung von Ihrem ANDROID zu Ihrem DESKTOP herstellen (die Verwendung Ihres DESKTOP-Benutzerkennworts kann optional sein)

ssh [email protected]

Verbindung von Ihrem DESKTOP zu Ihrem ANDROID herstellen (darf Ihr ANDROID-Benutzerkennwort nicht verwenden)

Da Termux ein Einzelbenutzersystem ist, können Sie als beliebiger Benutzer eine Verbindung herstellen. Unabhängig von Ihrem angegebenen Benutzernamen melden Sie sich als einziger verfügbarer Termux-Benutzer an.

Die Termux sshd-Binärdatei unterstützt keine Kennwortanmeldungen, daher muss vor dem Herstellen einer ~/.ssh/authorized_keysVerbindung ein Schlüssel autorisiert werden . Verwenden Sie ssh-keygen, um bei Bedarf ein neues zu generieren.

ssh -p 8022 -i ~/.ssh/id_rsa IP.OF.YOUR.ANDROID

(ANDROID) Wenn Sie immer noch Probleme beim Anmelden haben, navigieren Sie zur Datei und aktivieren Sie diese beiden Schlüsselpaare: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Extra: Sperren und Entsperren des Dateisystems von schreibgeschützt zu schreibgeschützt und umgekehrt.

So kopieren Sie Dateien mit 'adb push' in das Datenverzeichnis eines Android-Emulators https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

Setzen Sie die Änderungen nach Abschluss der Änderungen zurück!

cat /proc/mounts
mount -o ro,remount rootfs /
Nutzer
quelle