Accès à l'environnement utilisateur termux à partir d'autres consoles

9

J'ai récemment commencé à utiliser l'incroyable application de terminal Termux et l'environnement linux. Il fournit une multitude d'utilitaires de terminal à fonctions complètes. Ce serait formidable de pouvoir accéder à ces utilitaires à partir d'autres consoles, en particulier lorsqu'il est connecté via sshou adb shell. J'ai réussi à rendre certaines fonctionnalités disponibles en définissant mes variables d'environnement PATHet LD_LIBRARY_PATHles mêmes valeurs utilisées par le shell de Termux, mais il y a des problèmes d'autorisations et cela semble compliqué.

Existe-t-il un moyen de se connecter à une session Termux? Termux ne semble pas fournir de package de serveur ssh. Même si c'était le cas, ce serveur, et donc la session ssh accordée par lui, s'exécuterait en tant qu'utilisateur distinct de l'utilisateur termux, ce qui entraînerait des problèmes d'autorisations similaires.

Existe-t-il un moyen pris en charge pour accéder à l'environnement utilisateur Termux à partir d'autres consoles?

intuition
la source

Réponses:

11

Termux fournit le opensshpackage, qui contient à la fois le sshclient et le sshdserveur.

Installez le package avec:, apt install opensshpuis démarrez le serveur avec sshd- il fonctionnera sur le port 8022 par défaut, alors connectez-vous avec ssh -p 8022 DEVICE_IP, et vous pourrez trouver le périphérique wifi ip en utilisant ip addr list wlan0.

L'authentification par mot de passe n'est pas prise en charge, vous devez donc la configurer $HOME/.ssh/authorized_keys.

Une fois connecté, vous vous exécuterez en tant qu'utilisateur Termux normal avec les variables d'environnement correctement configurées.

fornwall
la source
1
Wow, ils devraient vraiment le mentionner dans la description du package, qui dit simplement qu'il s'agit d'un "shell sécurisé pour se connecter à une machine distante".
intuition
Pourquoi ne puis-je pas me connecter à partir d'un client distant avec ssh sur un smartphone qui a sshd termux et est connecté à Internet avec une ip (que j'obtiens de curl ifconfig.me) sur le port 8022. Le problème est-il lié au fournisseur Internet, qu'il y a beaucoup de clients sur une seule IP?
user3123159
5
L'authentification par mot de passe est prise en charge. Vous devez exécuter passwdpour définir un nouveau mot de passe pour votre serveur SSH. Cependant, ce qui ne fonctionne pas, ce sont les noms d'utilisateur (c'est-à-dire que tout le monde peut se connecter avec chaque nom d'utilisateur avec ce mot de passe), AFAIK.
MAChitgarha
3

Vous devez installer opensshdans termux en exécutant

pkg install openssh

puis, sur l'appareil à partir duquel vous souhaitez effectuer la ssh, générez une clé d'identification publique,

ssh-keygen

et juste confirmer et changer quoi que ce soit, puis faire

cat ~/.ssh/id_rsa.pub

et copiez la sortie dans ~/.ssh/authorized_keyset redémarrez le sshdserveur et essayez de ssh,

si vous rencontrez des erreurs, vérifiez le authorized_keysfichier et assurez-vous que votre clé publique est sur une seule ligne

Vous devez effectuer ces étapes ci-dessus car Termux ne prend sshdpas en charge les connexions par mot de passe (IE, ssh user@ip_addresspuis entrer un mot de passe)

vous devez ssh dans termux en utilisant

ssh termux-ip-here -p 8022
Zachary Martin Duncan
la source
2

À genoux et à l'arc,

Ip_Address_Of_Remote_Host = 192.168.1.20

(En supposant que vous avez généré une clé sur la machine Termux à l'aide de

ssh-keygen -t rsa

Il y a un espace entre ssh-keygen et -t et copié la clé dans Remote_Host en utilisant les détails de connexion de cette machine

ssh-copy-id [email protected]).

Il y a un espace entre ssh-copy-id et user

Vous devriez maintenant pouvoir vous connecter à l'hôte distant sans utiliser de mot de passe.

ssh [email protected]

La clé rsa générée ci-dessus n'est pas la clé que vous placez dans le fichier authorized_keys sur la machine termux.

Le problème est de

id_rsa.pub

fichier de votre machine distante vers le termux

~ / .ssh / authorized_keys

fichier sur le système local (téléphone) la solution que j'ai utilisée était scp, cette commande déroute beaucoup de gens mais si elle est vue de la position qu'il ne s'agit que d'une commande cp, le mysticisme disparaît

cp file_to_copy where_to_copy_file

Cette commande est exécutée à partir de la machine Termux (téléphone)

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

Il y a un espace entre id_rsa.pub et ~ /

Le chemin vers votre répertoire .ssh peut être différent, assurez-vous simplement qu'il s'agit du chemin correct que vous entrez dans la commande ci-dessus.

Si vous ne parvenez toujours pas à vous connecter, accédez au

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

Activez ces deux paires de clés

ChallengeResponseAuthentication non

PubkeyAuthentication oui

Michael Hughes
la source
Pour toute personne ayant une légère compréhension de SSH, cela devrait être simple pour ceux qui sont nouveaux dans les chemins GNU / Linux. Mon prochain port d'escale est de voir si le transfert X est possible car il ouvre la possibilité d'utiliser les combinaisons de productivité sur votre bureau, mais en écrivant sur la machine termux, permettez-moi d'étendre, vous pourrez utiliser le logiciel LibraOffice sur la machine termux mais l'afficher sur le bureau sans retard / latence, c'est la puissance de GNU / Linux.
Michael Hughes
2

Ce sont des commandes Android à exécuter sur Termux et à configurer un client et un serveur SSH, permettant de se connecter de votre bureau à votre Android et vice-versa. Cela ne couvre pas le serveur SSH et le client configurés sur votre ordinateur de bureau.

Utilisation du serveur SSH https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Ici, vous pouvez créer un mot de passe pour vos clés et l'utiliser pour vous connecter à votre ordinateur, si vous aimez un mot de passe. Sinon, laissez-les vides et aucun mot de passe n'est requis, autre que le mot de passe de votre ordinateur utilisateur DESKTOP.

Comment configurer une connexion SSH sans mot de passe? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Cela vous permet de vous connecter de votre ANDROID à votre connexion DESKTOP par SSH sans votre mot de passe utilisateur ANDROID (car les mots de passe ne sont pas pris en charge par le serveur termux sshd)

3 étapes pour effectuer une connexion SSH sans mot de passe à l'aide de 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]

Cela vous permet de vous connecter de votre DESKTOP à votre connexion ANDROID par SSH sans votre mot de passe utilisateur ANDROID (si vous souhaitez utiliser le mot de passe utilisateur de votre ordinateur, ignorez cette commande)

  1. Première option Accès à l'environnement utilisateur termux à partir d'autres consoles Accès à l'environnement utilisateur termux à partir d'autres consoles

    scp [email protected]:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Deuxième option Comment ajouter des clés SSH au fichier authorized_keys? /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"
    

Scripts et notes pour la configuration et l'utilisation de SSHd sur votre appareil Android à l'aide de Termux https://github.com/tomhiggins/TermuxSSHDsetup

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

phrase de passe vierge ssh mais toujours en la demandant /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

Démarrez le serveur en exécutant sshd (qui le démarrera sur le port par défaut 8022) et exécutez logcat -s 'syslog:*'pour afficher la sortie du journal du processus serveur. Exécutez pkill sshd pour arrêter le serveur.

logcat -s 'syslog:*'
pkill sshd
sshd

Enfin, la connexion de l'un à l'autre et vice-versa:

Connexion de votre ANDROID à votre DESKTOP (l'utilisation de votre mot de passe utilisateur DESKTOP peut être facultative)

ssh [email protected]

Connexion de votre DESKTOP à votre ANDROID (ne doit pas utiliser votre mot de passe utilisateur ANDROID)

Étant donné que Termux est un système mono-utilisateur, vous pouvez vous connecter en tant que n'importe quel utilisateur - quel que soit votre nom d'utilisateur spécifié, vous vous connecterez en tant que seul utilisateur Termux disponible.

Le binaire Termux sshd ne prend pas en charge les connexions par mot de passe, une clé doit donc être autorisée ~/.ssh/authorized_keysavant la connexion. Utilisez ssh-keygen pour en générer un nouveau si vous le souhaitez.

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

(ANDROID) Si vous rencontrez toujours des problèmes de connexion, accédez au fichier et activez ces deux paires de clés: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Extra: Verrouillage et déverrouillage du système de fichiers de lecture seule à lecture-écriture et vice-versa.

Comment copier des fichiers dans le répertoire de données d'un émulateur Android avec 'adb push' https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

Annulez les modifications après avoir terminé les modifications!

cat /proc/mounts
mount -o ro,remount rootfs /
utilisateur
la source