Доступ к пользовательской среде termux из других консолей

9

Недавно я начал использовать удивительное терминальное приложение Termux и среду linux. Он предоставляет множество полнофункциональных терминальных утилит. Было бы здорово иметь возможность доступа к этим утилитам с других консолей, особенно при подключении через sshили adb shell. Мне удалось сделать некоторые функции доступными, установив переменные my PATHи LD_LIBRARY_PATHenvironment в те же значения, которые используются оболочкой Termux, но есть проблемы с разрешениями, и они кажутся грязными.

Есть ли способ ssh в сеансе Termux? Termux, похоже, не предоставляет пакет ssh-сервера. Даже если это произойдет, предположительно этот сервер и, следовательно, предоставленный им сеанс ssh будут работать как отдельный пользователь от пользователя termux, что приведет к аналогичным проблемам с разрешениями.

Существует ли поддерживаемый способ доступа к пользовательской среде Termux из других консолей?

созерцаемое
источник

Ответы:

11

Termux предоставляет opensshпакет, который содержит как sshклиента, так и sshdсервер.

Установите пакет с помощью:, apt install opensshзатем запустите сервер с sshd- он будет работать на порту 8022 по умолчанию, поэтому подключитесь к нему ssh -p 8022 DEVICE_IP, и вы сможете найти устройство с помощью Wi-Fi ip ip addr list wlan0.

Аутентификация по паролю не поддерживается, поэтому вам необходимо выполнить настройку $HOME/.ssh/authorized_keys.

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

fornwall
источник
1
Ух, они действительно должны упомянуть это в описании пакета, в котором просто говорится, что это «Безопасная оболочка для входа на удаленную машину».
интуитивно
Почему я не могу подключиться с удаленного клиента с помощью ssh на смартфоне с sshd termux и подключенным к Интернету с помощью ip (который я получаю из curl ifconfig.me) через порт 8022. Проблема связана с интернет-провайдером, что на одном ip много клиентов?
user3123159
5
Пароль аутентификации поддерживается. Вам нужно запустить, passwdчтобы установить новый пароль для вашего SSH-сервера. Однако то, что не работает, это имена пользователей (то есть каждый может войти в систему с любым именем пользователя с этим одним паролем), AFAIK.
MAChitgarha
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, сгенерированный выше, не является ключом, который вы помещаете в файл author_keys на машине termux.

Проблема заключается в получении

id_rsa.pub

файл с удаленной машины на termux

~ / .Ssh / authorized_keys

файл в локальной системе (телефон), решение, которое я использовал, было scp, эта команда сбивает с толку многих людей, но если смотреть с позиции, что это всего лишь команда cp, ее мистика исчезает

cp file_to_copy where_to_copy_file

Эта команда запускается с компьютера Termux (телефон)

scp user@192.168.1.20: /home/user/.ssh/id_rsa.pub ~ / .ssh / authorized_keys

Между id_rsa.pub и ~ / есть пробел

Путь к вашему каталогу .ssh может отличаться, просто убедитесь, что это правильный путь, который вы вводите в приведенной выше команде.

Если вам по-прежнему не удается войти в систему, перейдите к

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

Активируйте эти две пары ключей

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 (так как пароли не поддерживаются сервером suxd termux)

3 шага для входа в SSH без пароля с использованием ssh-keygen и ssh-copy-id https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using- SSH-кейген-SSH-копия-идентификатор

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 в файл author_keys? /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 /
пользователь
источник