Dostęp do środowiska użytkownika termux z innych konsol

9

I niedawno zaczął używać niesamowite Termux terminala aplikacji i Linux środowisko. Zapewnia bogactwo w pełni funkcjonalnych narzędzi terminalowych. Byłoby wspaniale mieć dostęp do tych narzędzi z innych konsol, zwłaszcza gdy są połączone przez sshlub adb shell. Udało mi się udostępnić niektóre funkcje, ustawiając zmienne moje PATHi LD_LIBRARY_PATHzmienne środowiskowe na te same wartości, które są używane przez powłokę Termux, ale są problemy z uprawnieniami i wydaje się, że są bałaganu.

Czy istnieje sposób na włączenie ssh do sesji Termux? Wydaje się, że Termux nie zapewnia pakietu serwera ssh. Nawet gdyby tak się stało, przypuszczalnie ten serwer, a zatem udzielona przez niego sesja ssh, działałaby jako osobny użytkownik od użytkownika termux, powodując podobne problemy z uprawnieniami.

Czy istnieje obsługiwany sposób dostępu do środowiska użytkownika Termux z innych konsol?

intuicyjny
źródło

Odpowiedzi:

11

Termux dostarcza opensshpakiet, który zawiera zarówno sshklienta, jak i sshdserwer.

Zainstaluj pakiet za pomocą:, a apt install opensshnastępnie uruchom serwer za pomocą sshd- domyślnie będzie działał na porcie 8022, więc połącz się z nim za pomocą ssh -p 8022 DEVICE_IPi możesz znaleźć urządzenie WiFi ip za pomocą ip addr list wlan0.

Uwierzytelnianie za pomocą hasła nie jest obsługiwane, dlatego musisz je skonfigurować $HOME/.ssh/authorized_keys.

Po połączeniu będziesz działać jako normalny użytkownik Termux z poprawnie skonfigurowanymi zmiennymi środowiskowymi.

fornwall
źródło
1
Wow, powinni naprawdę wspomnieć o tym w opisie pakietu, który mówi tylko, że jest to „Bezpieczna powłoka do logowania na zdalnym komputerze”.
intuicyjnie
Dlaczego nie mogę połączyć się ze zdalnego klienta za pomocą ssh na smartfonie, który ma sshd termux i jest podłączony do Internetu za pomocą adresu IP (który otrzymuję z curl ifconfig.me) na porcie 8022. Czy problem jest związany z dostawcą Internetu, że na jednym ip jest wielu klientów?
user3123159,
6
Obsługiwane jest uwierzytelnianie za pomocą hasła. Musisz uruchomić, passwdaby ustawić nowe hasło do serwera SSH. Jednak to, co nie działa, to nazwy użytkowników (tzn. Każdy może zalogować się przy użyciu każdej nazwy użytkownika za pomocą tego jednego hasła), AFAIK.
MAChitgarha
Możesz uruchomić sshd przy każdym uruchomieniu za pomocą wiki.termux.com/wiki/Termux:Boot
fuzzyTew
3

Musisz zainstalować opensshin termux, uruchamiając

pkg install openssh

a następnie na urządzeniu, z którego chcesz ssh wygenerować klucz publicznego identyfikatora,

ssh-keygen

i po prostu potwierdź i zmień wszystko, a następnie zrób

cat ~/.ssh/id_rsa.pub

i skopiuj dane wyjściowe na ~/.ssh/authorized_keysi zrestartuj sshdserwer i spróbuj ssh,

jeśli wystąpią jakiekolwiek błędy, sprawdź authorized_keysplik i upewnij się, że klucz publiczny znajduje się w jednym wierszu

Musisz wykonać powyższe kroki, ponieważ Termux sshdnie obsługuje logowania haseł (IE, ssh user@ip_addressa następnie wprowadzanie hasła)

musisz użyć ssh w termux

ssh termux-ip-here -p 8022
Zachary Martin Duncan
źródło
2

Na kolanach i ukłonie

Ip_Address_Of_Remote_Host = 192.168.1.20

(Zakładając, że wygenerowałeś klucz na maszynie termux przy użyciu

ssh-keygen -t rsa

Pomiędzy ssh-keygen i -t jest spacja, a klucz został skopiowany do Remote_Host przy użyciu danych logowania do tych maszyn

ssh-copy-id [email protected]).

Między ssh-copy-id a użytkownikiem jest spacja

Powinieneś być teraz w stanie zalogować się do zdalnego hosta bez użycia hasła.

ssh uż[email protected]

Wygenerowany powyżej klucz rsa nie jest kluczem, który umieszczasz w pliku uprawniony_kluczy na maszynie termux.

Problemem jest uzyskanie

id_rsa.pub

plik ze zdalnego komputera do termux

~ / .ssh / Author_keys

plik w systemie lokalnym (telefon) rozwiązaniem, którego użyłem był scp, to polecenie dezorientuje wielu ludzi, ale patrząc na to, że jest to po prostu polecenie cp, mistycyzm znika

cp plik_do_kopii gdzie_do_pliku_kopii

To polecenie jest uruchamiane z komputera Termux (telefon)

scp uż[email protected]: /home/user/.ssh/id_rsa.pub ~ / .ssh / Author_keys

Pomiędzy id_rsa.pub i ~ / jest spacja

Ścieżka do twojego katalogu .ssh może być inna, po prostu upewnij się, że jest to poprawna ścieżka, którą wpisujesz powyżej polecenia.

Jeśli nadal masz problemy z zalogowaniem się, przejdź do

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

Aktywuj te dwie pary kluczy

Wyzwanie Odpowiedź Nr uwierzytelnienia

Pubkey Uwierzytelnienie tak

Michael Hughes
źródło
Dla każdego, kto słabo rozumie SSH, powinno to być proste, ponieważ ci, którzy są nowicjuszami na ścieżkach GNU / Linux, powinni się skupić. Moim następnym wezwaniem jest sprawdzenie, czy przekierowanie X jest możliwe, a następnie otwiera możliwość korzystania z kombinezonów wydajności na pulpicie, ale pisząc na maszynie termux, pozwól mi rozwinąć, że będziesz mógł używać oprogramowania LibraOffice na maszynie termux ale wyświetlenie go na pulpicie bez opóźnień / opóźnień to jest siła GNU / Linux.
Michael Hughes
2

Są to polecenia Androida do uruchomienia na Termuxie i skonfigurowania klienta i serwera SSH, co pozwala na połączenie z komputera stacjonarnego na Androida i odwrotnie. Nie obejmuje to serwera SSH i klienta skonfigurowanego na komputerze stacjonarnym.

Korzystanie z serwera SSH https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Tutaj możesz utworzyć hasło do swoich kluczy i użyć go do połączenia z komputerem, jeśli podoba ci się hasło. W przeciwnym razie pozostaw je puste i nie będą wymagane hasła inne niż hasło komputera użytkownika DESKTOP.

Jak skonfigurować logowanie SSH bez hasła? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Umożliwia to połączenie z ANDROIDA do DESKTOP przez połączenie SSH bez hasła użytkownika ANDROID (ponieważ hasła nie są obsługiwane przez serwer termux sshd)

3 kroki do wykonania logowania SSH bez hasła za pomocą ssh-keygen i 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]

Pozwala to połączyć się z komputera stacjonarnego z ANDROIDEM przez połączenie SSH bez hasła użytkownika ANDROID (jeśli chcesz użyć hasła użytkownika komputera, pomiń to polecenie)

  1. Pierwsza opcja Dostęp do środowiska użytkownika termux z innych konsol Dostęp do środowiska użytkownika termux z innych konsol

    scp [email protected]:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Druga opcja Jak dodać klucze SSH do pliku autoryzowanych_kluczy? /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"
    

Skrypty i uwagi dotyczące konfigurowania i używania SSHd na urządzeniu z Androidem za pomocą Termux https://github.com/tomhiggins/TermuxSSHDsetup

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

ssh puste hasło, ale wciąż o nie proszone /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

Uruchom serwer, uruchamiając sshd (który uruchomi go na domyślnym porcie 8022) i uruchom, logcat -s 'syslog:*'aby wyświetlić dane wyjściowe dziennika z procesu serwera. Uruchom pkill sshd, aby zatrzymać serwer.

logcat -s 'syslog:*'
pkill sshd
sshd

Wreszcie, łącząc się między sobą i odwrotnie:

Łączenie z ANDROIDA z DESKTOPEM (użycie hasła użytkownika DESKTOP może być opcjonalne)

ssh [email protected]

Łączenie z komputera stacjonarnego do ANDROIDA (nie wolno używać hasła użytkownika ANDROID)

Ponieważ Termux jest systemem dla jednego użytkownika, możesz połączyć się z nim jak każdy użytkownik - bez względu na podaną nazwę użytkownika zalogujesz się jako jedyny dostępny użytkownik Termux.

Plik binarny sshd Termux nie obsługuje logowania hasła, więc klucz musi zostać autoryzowany ~/.ssh/authorized_keysprzed połączeniem. W razie potrzeby użyj ssh-keygen, aby wygenerować nowy.

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

(ANDROID) Jeśli nadal masz problemy z zalogowaniem się, przejdź do pliku i aktywuj te dwie pary kluczy: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Dodatkowo: Blokowanie i odblokowywanie systemu plików od tylko do odczytu do odczytu i zapisu i odwrotnie.

Jak skopiować pliki do katalogu danych emulatora Androida za pomocą „adb push” https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

Cofnij zmiany po ich zakończeniu!

cat /proc/mounts
mount -o ro,remount rootfs /
użytkownik
źródło