การเข้าถึงสภาพแวดล้อมของผู้ใช้ termux จากคอนโซลอื่น ๆ


9

ฉันเพิ่งเริ่มใช้แอพเทอร์มินัลTermuxและสภาพแวดล้อม Linux ที่น่าทึ่ง มันให้ความมั่งคั่งของอาคารสถานีแบบเต็มฟังก์ชั่น มันจะดีเพื่อให้สามารถเข้าถึงสาธารณูปโภคเหล่านี้จากคอนโซลอื่น ๆ โดยเฉพาะอย่างยิ่งเมื่อเชื่อมต่อผ่านหรือssh adb shellฉันจัดการเพื่อให้การทำงานบางอย่างพร้อมใช้งานโดยการตั้งค่าตัวแปรของฉันPATHและLD_LIBRARY_PATHสภาพแวดล้อมเป็นค่าเดียวกับที่ใช้โดยเชลล์ของ Termux แต่มีปัญหาการอนุญาตและดูเหมือนว่ายุ่ง

มีวิธีการ ssh ในการ 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
ว้าวพวกเขาควรพูดถึงจริงๆว่าในรายละเอียดแพ็คเกจซึ่งเพิ่งบอกว่ามันเป็น "เชลล์ที่ปลอดภัยสำหรับการเข้าสู่เครื่องระยะไกล"
intuited

เหตุใดฉันจึงไม่สามารถเชื่อมต่อจากไคลเอนต์ระยะไกลที่มี 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-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 ที่สร้างขึ้นด้านบนไม่ใช่กุญแจที่คุณใส่ลงในไฟล์ authorized_keys บนเครื่อง termux

ปัญหากำลังได้รับ

id_rsa.pub

ไฟล์จากเครื่องระยะไกลของคุณไปยัง termux

~ / .ssh / authorized_keys

ไฟล์ในระบบ Local (โทรศัพท์) วิธีการแก้ปัญหาที่ฉันใช้คือ 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

เปิดใช้งานคู่กุญแจทั้งสองนี้

ChallengeResponseAuthentication no

PubkeyAuthentication ใช่


สำหรับใครก็ตามที่มีความเข้าใจเพียงเล็กน้อยเกี่ยวกับ SSH สิ่งนี้ควรตรงไปตรงมาสำหรับผู้ที่ยังใหม่กับพา ธ GNU / Linux เป็นสิ่งที่คุณต้องให้ความสำคัญ พอร์ตการโทรถัดไปของฉันคือการดูว่าการส่งต่อ X เป็นไปได้หรือไม่นั้นจะเปิดโอกาสในการใช้ชุดการเพิ่มประสิทธิภาพบนเดสก์ท็อปของคุณ แต่เขียนไปยังเครื่อง termux ให้ฉันขยายคุณจะสามารถใช้ซอฟต์แวร์ LibraOffice บนเครื่อง termux แต่ให้มันแสดงบนเดสก์ท็อปโดยไม่เกิดความล่าช้า / latency นี่คือพลังของ GNU / Linux
Michael Hughes

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 คัดลอกรหัส

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

สิ่งนี้อนุญาตให้คุณเชื่อมต่อจากเดสก์ท็อปของคุณไปยังการเชื่อมต่อ ANDROID โดย SSH โดยไม่ต้องใช้รหัสผ่านผู้ใช้ ANDROID (หากคุณต้องการใช้รหัสผ่านผู้ใช้คอมพิวเตอร์ของคุณให้ข้ามคำสั่งนี้)

  1. ตัวเลือกแรก การเข้าถึงสภาพแวดล้อมของผู้ใช้ termux จากคอนโซลอื่น การเข้าถึงสภาพแวดล้อมของผู้ใช้ termux จากคอนโซลอื่น ๆ

    scp your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. ตัวเลือกที่สอง ฉันจะเพิ่มคีย์ SSH ไปยังไฟล์ authorized_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 ของคุณไปยังเดสก์ท็อปของคุณ (การใช้รหัสผ่านผู้ใช้เดสก์ท็อปของคุณสามารถเลือกได้)

ssh your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS

การเชื่อมต่อจากเดสก์ท็อปของคุณไปยัง ANDROID ของคุณ (ต้องไม่ใช้รหัสผ่านผู้ใช้ ANDROID ของคุณ)

เนื่องจาก Termux เป็นระบบผู้ใช้คนเดียวคุณสามารถเชื่อมต่อเป็นผู้ใช้ใด ๆ - โดยไม่คำนึงถึงชื่อผู้ใช้ที่คุณระบุคุณจะเข้าสู่ระบบในฐานะผู้ใช้ Termux เท่านั้น

Termux sshd binary ไม่รองรับการเข้าสู่ระบบด้วยรหัสผ่านดังนั้นจำเป็นต้องได้รับอนุญาต ~/.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 emulator ด้วย 'adb push' https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-read-only-error

mount -o rw,remount rootfs /

ย้อนกลับการเปลี่ยนแปลงกลับมาหลังจากสิ้นสุดการเปลี่ยนแปลง!

cat /proc/mounts
mount -o ro,remount rootfs /
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.