Truy cập môi trường người dùng termux từ các bảng điều khiển khác


9

Gần đây tôi đã bắt đầu sử dụng ứng dụng thiết bị đầu cuối Termux tuyệt vời và môi trường linux. Nó cung cấp vô số các tiện ích thiết bị đầu cuối đầy đủ chức năng. Sẽ thật tuyệt khi có thể truy cập các tiện ích này từ các bảng điều khiển khác, đặc biệt là khi được kết nối qua sshhoặc adb shell. Tôi đã quản lý để cung cấp một số chức năng có sẵn bằng cách đặt các biến môi trường PATHLD_LIBRARY_PATHbiến của tôi thành cùng các giá trị được sử dụng bởi shell của Termux, nhưng có vấn đề về quyền và có vẻ lộn xộn.

Có cách nào để ssh tham gia phiên Termux không? Termux dường như không cung cấp gói máy chủ ssh. Ngay cả nếu có, có lẽ máy chủ đó, và do đó phiên ssh do nó cấp, sẽ chạy như một người dùng riêng biệt với người dùng termux, dẫn đến các vấn đề về quyền tương tự.

Có cách nào được hỗ trợ để truy cập vào môi trường người dùng Termux từ các bảng điều khiển khác không?

Câu trả lời:


11

Termux cung cấp opensshgói chứa cả sshmáy khách và sshdmáy chủ.

Cài đặt gói với : apt install openssh, sau đó khởi động máy chủ với sshd- nó sẽ chạy trên cổng 8022 theo mặc định, vì vậy hãy kết nối với nó ssh -p 8022 DEVICE_IPvà bạn có thể tìm thấy ip wifi của thiết bị bằng cách sử dụng ip addr list wlan0.

Xác thực mật khẩu không được hỗ trợ, vì vậy bạn cần thiết lập $HOME/.ssh/authorized_keys.

Sau khi kết nối, bạn sẽ chạy như người dùng Termux bình thường với các biến môi trường được thiết lập chính xác.


1
Ồ, họ thực sự nên đề cập rằng trong phần mô tả gói, chỉ nói rằng đó là "Vỏ bảo mật để đăng nhập vào máy từ xa".
trực giác

Tại sao tôi không thể kết nối từ máy khách từ xa với ssh trên điện thoại thông minh có sux termux và được kết nối với internet bằng ip (mà tôi nhận được từ curl ifconfig.me) trên cổng 8022. Có phải vấn đề liên quan đến nhà cung cấp internet, Có nhiều khách hàng trên một ip?
user3123159

5
Xác thực mật khẩu được hỗ trợ. Bạn cần chạy passwdđể đặt mật khẩu mới cho máy chủ SSH của mình. Tuy nhiên, thứ không hoạt động là tên người dùng (tức là mọi người đều có thể đăng nhập bằng mọi tên người dùng bằng một mật khẩu đó), AFAIK.
MAChitgarha

3

Bạn cần cài đặt opensshtrong termux bằng cách chạy

pkg install openssh

và sau đó, trên thiết bị bạn muốn ssh từ đó, tạo Khóa ID công khai,

ssh-keygen

và chỉ cần xác nhận và thay đổi bất cứ điều gì, sau đó làm

cat ~/.ssh/id_rsa.pub

và sao chép đầu ra vào ~/.ssh/authorized_keysvà khởi động lại sshdmáy chủ và thử ssh,

nếu bạn gặp bất kỳ lỗi nào, hãy kiểm tra authorized_keystệp và đảm bảo khóa công khai của bạn nằm trên một dòng

Bạn phải thực hiện các bước trên vì Termux sshdkhông hỗ trợ đăng nhập mật khẩu, (IE, ssh user@ip_addresssau đó nhập mật khẩu)

bạn phải ssh vào termux bằng cách sử dụng

ssh termux-ip-here -p 8022

2

Trên đầu gối và cung của bạn,

Ip_Address_Of_Remote_host = 192.168.1.20

(Giả sử bạn đã tạo một khóa trên máy termux bằng cách sử dụng

ssh-keygen -t rsa

Có một khoảng trống giữa ssh-keygen và -t và sao chép khóa vào Remote_host bằng cách sử dụng chi tiết đăng nhập của máy đó

ssh-copy-id user@192.168.1.20).

Có một khoảng trống giữa ssh-copy-id và người dùng

Bây giờ bạn có thể đăng nhập vào máy chủ từ xa mà không cần sử dụng mật khẩu.

người dùng ssh@192.168.1.20

Khóa rsa được tạo ở trên không phải là khóa bạn đặt vào tệp ủy quyền trên máy termux.

Vấn đề là nhận được

id_rsa.pub

tập tin từ máy Remote của bạn đến termux

~ / .ssh / ủy quyền

tập tin trên hệ thống cục bộ (điện thoại) giải pháp tôi sử dụng là scp, lệnh này gây nhầm lẫn cho nhiều người nhưng nếu nhìn từ vị trí đó chỉ là lệnh cp thì chủ nghĩa thần bí biến mất

cp file_to_copy where_to_copy_file

Lệnh này được chạy từ máy Termux (điện thoại)

scp user@192.168.1.20: /home/user/.ssh/id_rsa.pub ~ / .ssh / ủy quyền

Có một khoảng trắng nằm giữa id_rsa.pub và ~ /

Đường dẫn đến thư mục .ssh của bạn có thể khác nhau, chỉ cần đảm bảo rằng đó là đường dẫn chính xác mà bạn nhập vào lệnh trên.

Nếu bạn vẫn gặp sự cố khi đăng nhập vào điều hướng đến

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

Kích hoạt hai cặp khóa này

ChallengeResponseAuthentication no

PubkeyAuthentication có


Đối với bất kỳ ai có một chút hiểu biết về SSH, điều này cần thẳng thắn đối với những người chưa quen với các đường dẫn GNU / Linux là những gì bạn cần tập trung vào. Cổng gọi tiếp theo của tôi là để xem liệu chuyển tiếp X có khả thi hay không, nó sẽ mở ra khả năng sử dụng bộ đồ năng suất trên máy tính để bàn của bạn nhưng viết thư cho máy termux, hãy để tôi mở rộng, bạn sẽ có thể sử dụng phần mềm LibraOffice trên máy termux nhưng nó được hiển thị trên màn hình nền mà không bị trễ / trễ, đây là sức mạnh của GNU / Linux.
Michael Hughes

2

Đây là các lệnh Android để chạy trên Termux và thiết lập máy khách và máy chủ SSH, cho phép kết nối từ máy tính để bàn của bạn với Android và ngược lại. Điều này không bao gồm máy chủ SSH và máy khách được thiết lập trên máy tính để bàn của bạn.

Sử dụng máy chủ SSH https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Tại đây bạn có thể tạo mật khẩu cho các phím của mình và sử dụng nó để kết nối với máy tính của bạn, nếu bạn thích mật khẩu. Nếu không, hãy để trống và không yêu cầu mật khẩu, ngoại trừ mật khẩu máy tính người dùng DESKTOP của bạn.

Làm cách nào tôi có thể thiết lập đăng nhập SSH không cần mật khẩu? https://askubfox.com/questions/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Điều này cho phép bạn kết nối từ ANDROID với DESKTOP bằng kết nối SSH mà không cần mật khẩu người dùng ANDROID (vì mật khẩu không được máy chủ suxd termux hỗ trợ)

3 bước để thực hiện đăng nhập SSH mà không cần mật khẩu bằng ssh-keygen & ssh-copy-id https: //www.thegeek ware.com/2008/11/3-steps-to-perform-ssh-login-without-password-USE- ssh-keygen-ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS

Điều này cho phép bạn kết nối từ DESKTOP với ANDROID bằng kết nối SSH mà không cần mật khẩu người dùng ANDROID (nếu bạn muốn sử dụng mật khẩu người dùng máy tính của mình, hãy bỏ qua lệnh này)

  1. Tùy chọn đầu tiên Truy cập môi trường người dùng termux từ các bảng điều khiển khác Truy cập môi trường người dùng termux từ các bảng điều khiển khác

    scp your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Tùy chọn thứ hai Làm cách nào để thêm Khóa SSH vào tệp ủy quyền? https://askubfox.com/questions/46424/how-do-i-add-ssh-keys-to- trái phép-keys-file

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

Các tập lệnh và ghi chú để thiết lập và sử dụng SSHd trên thiết bị Android của bạn bằng Termux https://github.com/tomhiggins/TermuxSSHDsetup

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

mật khẩu trống ssh nhưng vẫn yêu cầu /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

Khởi động máy chủ bằng cách thực thi sshd (sẽ khởi động nó trên cổng mặc định 8022) và chạy logcat -s 'syslog:*'để xem đầu ra nhật ký từ quy trình máy chủ. Thực thi pkill sshd để dừng máy chủ.

logcat -s 'syslog:*'
pkill sshd
sshd

Cuối cùng, kết nối từ người này sang người khác và ngược lại:

Kết nối từ ANDROID của bạn với DESKTOP của bạn (việc sử dụng mật khẩu người dùng DESKTOP của bạn có thể là tùy chọn)

ssh your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS

Kết nối từ DESKTOP của bạn với ANDROID của bạn (không được sử dụng mật khẩu người dùng ANDROID của bạn)

Vì Termux là hệ thống một người dùng, bạn có thể kết nối với tư cách là bất kỳ người dùng nào - bất kể tên người dùng được chỉ định của bạn, bạn sẽ đăng nhập với tư cách là người dùng Termux duy nhất khả dụng.

Nhị phân Termux sshd không hỗ trợ đăng nhập mật khẩu, do đó, một khóa cần phải được cấp phép ~/.ssh/authorized_keystrước khi kết nối. Sử dụng ssh-keygen để tạo một cái mới nếu muốn.

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

(ANDROID) Nếu bạn vẫn gặp sự cố khi đăng nhập vào tệp và kích hoạt hai cặp khóa này: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Bổ sung: Khóa và mở khóa hệ thống tập tin từ chỉ đọc sang đọc và ngược lại.

Cách sao chép tệp vào thư mục dữ liệu của trình giả lập Android bằng 'adb đẩy' https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

Hoàn nguyên các thay đổi trở lại sau khi hoàn thành các thay đổi!

cat /proc/mounts
mount -o ro,remount rootfs /
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.