Доступ до середовища користувача termux з інших консолей


9

Нещодавно я почав користуватися дивовижним термінальним додатком Termux та середовищем Linux. Він забезпечує безліч повнофункціональних комунальних служб. Було б чудово мати доступ до цих утиліт з інших консолей, особливо при підключенні через sshабо adb shell. Мені вдалося зробити доступними деякі функціональні можливості, встановивши мої змінні PATHта LD_LIBRARY_PATHсередовища для тих самих значень, які використовуються в оболонці Termux, але є проблеми з дозволами, і це здається безладним.

Чи є спосіб вторгнутись у сесію Termux? Схоже, Termux не надає пакет ssh-сервера. Навіть якби це було, імовірно, що сервер, а отже, і сесія ssh, надана ним, запускався б як окремий користувач від користувача termux, що призводить до подібних проблем з дозволом.

Чи підтримується спосіб доступу до середовища користувача Termux з інших консолей?

Відповіді:


11

Termux дійсно надає opensshпакет, який містить і sshклієнта, і sshdсервера.

Встановіть пакунок за допомогою:, apt install opensshпотім запустіть сервер sshd- він буде працювати за порту 8022 за замовчуванням, тому підключіться до нього ssh -p 8022 DEVICE_IP, і ви можете знайти пристрій wifi ip за допомогою ip addr list wlan0.

Ідентифікація пароля не підтримується, тому вам потрібно налаштувати $HOME/.ssh/authorized_keys.

Після підключення ви працюєте як звичайний користувач Termux із налаштуванням змінних оточення правильно.


1
Нічого собі, вони дійсно повинні згадати це в описі пакета, де просто сказано, що це "Безпечна оболонка для входу на віддалену машину".
інтуїтоване

Чому я не можу з'єднати віддалений клієнт із ssh на смартфоні, який має sshd termux і підключений до Інтернету за допомогою ip (який я отримую від curl ifconfig.me) на порту 8022. Чи проблема пов’язана з Інтернет-провайдером, що на одному ip є багато клієнтів?
user3123159

6
Підтримується автентифікація пароля. Вам потрібно запустити, passwdщоб встановити новий пароль для вашого SSH-сервера. Однак те, що не працює - це імена користувачів (тобто кожен може увійти з кожним іменем користувача за допомогою цього одного пароля), AFAIK.
MAChitgarha

Ви можете запустити sshd на кожному завантаженні за допомогою wiki.termux.com/wiki/Termux:Boot
fuzzyTew

3

Вам потрібно встановити opensshв termux, запустивши

pkg install openssh

а потім на пристрої, з якого ви хочете відтворити ssh, створити загальнодоступний ключ,

ssh-keygen

і просто підтвердьте і впустіть що-небудь зміни, а потім зробіть

cat ~/.ssh/id_rsa.pub

і скопіюйте вихід ~/.ssh/authorized_keysі перезавантажте sshdсервер і спробуйте ssh,

якщо у вас виникли помилки, перевірте authorized_keysфайл і переконайтеся, що ваш відкритий ключ знаходиться в одному рядку

Ви повинні зробити ці кроки вище, оскільки Termux sshdне підтримує введення пароля (IE, ssh user@ip_addressа потім введення пароля)

вам доведеться ssh у termux за допомогою

ssh termux-ip-here -p 8022

2

На коліна і лук,

Ip_Address_Of_Remote_Host = 192.168.1.20

(Припустимо, що ви створили ключ на машині termux за допомогою

ssh-keygen -t rsa

Між ssh-keygen та -t є пробіл, і скопіював ключ у Remote_Host, використовуючи дані реєстрації на цих машинах.

ssh-copy-id user@192.168.1.20).

Між ssh-copy-id і користувачем є пробіл

Тепер ви зможете увійти на віддалений хост без використання пароля.

ssh user@192.168.1.20

Ключ rsa, згенерований вище, не є ключем, який ви розміщуєте у файлі санкціонованих_кілей на машині termux.

Проблема - це отримання

id_rsa.pub

файл із віддаленої машини до termux

~ / .ssh / санкціоновані_ ключі

Файл у локальній системі (телефон), яке я використав, - scp, ця команда бентежить багатьох людей, але якщо дивитися з позиції, що це лише команда cp, містифікація зникає

cp file_to_copy where_to_copy_file

Ця команда виконується з машини Termux (телефон)

scp user@192.168.1.20: /home/user/.ssh/id_rsa.pub ~ / .ssh / санкціонований_кейс

Між id_rsa.pub та ~ / є пробіл

Шлях до вашого каталогу .ssh може бути різним, просто переконайтесь, що це правильний шлях, який ви введете в команду on iznad.

Якщо у вас все ще виникають проблеми з входом у систему, перейдіть до пункту

/data/data/com.termux/files/usr/etc/ssh/sshd_config файл

Активуйте ці дві пари ключів

ChallengeResponseAuthentication no

PubkeyAuthentication так


Для тих, хто має легке розуміння SSH, це має бути прямо вперед для тих, хто не знайомий з маршрутами GNU / Linux - це те, на що потрібно зосередитися. Мій наступний порт дзвінка - побачити, чи можлива переадресація X, тоді вона відкриває можливість використання на робочому столі костюмів продуктивності, але писати на машині termux, дозвольте мені розширити, ви зможете використовувати програмне забезпечення LibraOffice на машині termux але відображати його на робочому столі без відставання / затримки - це сила GNU / Linux.
Майкл Х'юз

2

Це команди Android для запуску в Termux та встановлення клієнта та сервера SSH, що дозволяє підключитися зі свого робочого столу до Android та навпаки. Це не охоплює SSH-сервер та клієнт, створені на вашому настільному комп’ютері.

Використання SSH-сервера https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Тут ви можете створити пароль для своїх ключів і використовувати його для підключення до комп'ютера, якщо вам подобається пароль. В іншому випадку залиште їх порожніми, і паролі не потрібні, крім пароля комп'ютера користувача DESKTOP.

Як я можу налаштувати вхід із SSH без пароля? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Це дозволяє вам підключитись із ANDROID до DESKTOP за допомогою SSH-з'єднання без вашого пароля користувача ANDROID (оскільки паролі не підтримуються на сервері termux sshd)

3 кроки для здійснення входу в SSH без пароля за допомогою 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 your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS

Це дозволяє вам підключитися з DESKTOP до підключення ANDROID через SSH без пароля користувача ANDROID (якщо ви хочете використовувати пароль свого комп'ютера, пропустіть цю команду)

  1. Перший варіант Доступ до середовища користувача termux з інших консолей Доступ до середовища користувача termux з інших консолей

    scp your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Другий варіант Як додати SSH-ключі до файлу санкціонованих ключів? /ubuntu/46424/how-do-i-add-ssh-keys-to-authorized-keys-file

    cat ~/.ssh/id_rsa.pub | ssh your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    

Сценарії та примітки для налаштування та використання SSHd на пристрої Android за допомогою Termux https://github.com/tomhiggins/TermuxSSHDsetup

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

ssh порожня парольна фраза, але все-таки просить її /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

Запустіть сервер, виконавши sshd (який запустить його на порт 8022 за замовчуванням) та запустіть, logcat -s 'syslog:*'щоб переглянути вихід журналу з серверного процесу. Виконайте pkill sshd, щоб зупинити сервер.

logcat -s 'syslog:*'
pkill sshd
sshd

Нарешті, підключення від одного до іншого та навпаки:

Підключення від ANDROID до DESKTOP (використання пароля користувача DESKTOP може бути необов’язковим)

ssh your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS

Підключення від DESKTOP до ANDROID (не повинно використовувати ваш пароль користувача ANDROID)

Оскільки Termux є однокористувацькою системою, ви можете підключитися як будь-який користувач - незалежно від вказаного імені користувача, ви ввійдете як єдиний доступний користувач Termux.

Бінарний файл Termux sshd не підтримує введення пароля, тому ключ повинен бути авторизований ~/.ssh/authorized_keysперед з'єднанням. Використовуйте ssh-keygen для створення нового за бажанням.

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

(ANDROID) Якщо у вас все ще виникають проблеми з входом у систему, перейдіть до файлу та активуйте ці дві пари ключів: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Додатково: Блокування та розблокування файлової системи з режиму лише для читання для читання-запису та навпаки.

Як скопіювати файли в каталог даних емулятора Android за допомогою "adb push" https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

Відновіть зміни після закінчення змін!

cat /proc/mounts
mount -o ro,remount rootfs /
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.