มีไคลเอ็นต์บรรทัดคำสั่ง SSH สำหรับโทรศัพท์ Android ที่รูทหรือไม่?


23

แน่นอนว่าฉันมี ConnectBot แต่ฉันกำลังมองหาบางอย่างที่ฉันสามารถเขียนได้

แก้ไข: เพื่อให้ชัดเจนที่นี่ฉันไม่สนใจใช้งานสคริปต์จากเทอร์มินัล สิ่งที่ฉันต้องการทำคือเรียกใช้คำสั่ง SSH ในแบบอัตโนมัติ / กำหนดเวลา Tasker และ Locale Execute เทียบเท่า cron ทั้งหมดที่ฉันต้องการคือคำสั่ง 'ssh' เพื่อเรียกใช้จากสคริปต์


สำหรับ scriptability ผมตั้งใจที่จะใช้ทาซเคอโดยตรงหรือผ่านทางสถาน Execute Plug-In appbrain.com/app/de.elmicha.app.LocaleExecute
TREE

คำตอบ:


12

คุณสามารถติดตั้งTerminal Emulator ได้จาก google อีกวิธีหนึ่งคือมีดีกว่าจำลอง terminal Pro ฉันลอง Terminal Emulator บนโทรศัพท์ที่ไม่ได้รูทและดูเหมือนว่าจะทำงานได้ดี

Better Terminal Emulator Pro รวมถึงไคลเอนต์ dropbear sshซึ่งสามารถเรียกใช้จากบรรทัดคำสั่งหรือผ่านตัวเรียกใช้งาน ข้อมูลเพิ่มเติมจากผู้เขียน


แรงเทอร์มินัลอีมูเลเตอร์ปิดอย่างสม่ำเสมอในอุปกรณ์ของฉันและเห็นได้ชัดว่าบนอุปกรณ์อื่น ๆ ของคนจำนวนมาก ฉันยังไม่เห็นสิ่งบ่งชี้ใด ๆ ว่าสามารถเรียกใช้จาก Tasker หรือจากบรรทัดคำสั่ง
TREE

ปรากฎว่า Better Terminal Emulator Pro รวมเอาไบนารีไคลเอนต์ dropbear อัปเดตคำตอบของคุณเพื่อรวมข้อมูลนั้นและฉันจะยอมรับมัน
TREE

1
เป็นการดีที่คุณไม่ควรใช้ซอฟต์แวร์แหล่งปิดเช่น Better Terminal Emulator Pro สำหรับการเข้ารหัสที่เกี่ยวข้อง ฉันขอแนะนำให้สร้าง dropbear ssh โดยตรงจากแหล่งที่มาโดยใช้คำแนะนำของ Cyanogen ซึ่งอาจเป็น BTEP ทั้งหมด
Jeff Burdges

1
มีแอพพลิเคชั่น Android แบบโอเพ่นซอร์สหลายตัวที่ติดตั้งสำเนาไคลเอนต์ ssh ของ dropbear ด้วยเพียงเพิ่ม symlink ทำให้มันทำงานภายใต้ Terminal Emulator ของ Google
Jeff Burdges

ลิงก์ของคุณสำหรับเทอร์มินัลอีมูเลเตอร์จาก google androlib.com/android.application.com-android-term-jpAz.aspx กล่าวว่า "แอปพลิเคชันนี้ดูเหมือนจะถูกลบออกจาก Android Market" ฉันไม่เห็น 'เทอร์มินัลอีมูเลเตอร์' โดย google ใน google play store . ผลลัพธ์แรกใน google play store คือตัวจำลองเทอร์มินัล Android โดย jack palevich แต่ไม่มี ssh
barlop

17

เนื่องจากคำถามดั้งเดิมของฉันเกี่ยวกับไบนารี ssh และมีคำตอบสำหรับสิ่งนั้นฉันจะยอมรับคำตอบนั้น อย่างไรก็ตามมีวิธีอื่นในการทำสิ่งที่ฉันอยากจะทำนั่นอาจเป็นเรื่องที่น่าสนใจสำหรับใครบางคนในแต่ละวัน

Tasker + ConnectBot สามารถใช้เรียกใช้คำสั่งจากระยะไกล (หรือในพื้นที่ฉันเดา แต่คำสั่ง Locale Execute ดีกว่าสำหรับนั้น) ตามกำหนดเวลา

ขั้นตอนที่ 1: ตั้งค่าการเชื่อมต่อของคุณใน ConnectBot

  • คุณสามารถมีการเชื่อมต่อที่ซ้ำกันใน ConnectBot ตราบใดที่พวกเขามีนามแฝงที่แตกต่างกัน คุณต้องเปลี่ยนชื่อหนึ่งก่อน (ออกจาก user @ host) เพื่อสร้างที่สอง กดแบบยาวและเลือก "แก้ไขโฮสต์" เพื่อทำการเปลี่ยนแปลงเหล่านี้
  • คุณอาจต้องการตั้งค่าคีย์ ssh โดยไม่มีรหัสผ่านเพื่อให้คุณสามารถใช้สำหรับการทำงานอัตโนมัติ
  • เมื่อการเชื่อมต่อใช้งานได้จริงคุณสามารถใช้ "ระบบอัตโนมัติหลังการเข้าสู่ระบบ" เพื่อเพิ่มคำสั่งระยะไกลที่คุณต้องการเรียกใช้ ตรวจสอบให้แน่ใจว่ามีบรรทัดว่างที่ท้ายเพื่อให้ป้อนถูกส่งหลังจากคำสั่งสุดท้ายของคุณ ใช้ใส่หรือ; เพื่อแยกคำสั่ง ฉันแนะนำให้ใช้บางอย่างเช่น "echo hello" เป็นแบบทดสอบจนกว่าคุณจะแน่ใจว่าสิ่งต่าง ๆ ใช้งานได้และ "จบ" ในตอนท้ายหากคุณไม่ต้องการเปิดการเชื่อมต่อ
  • ทดสอบสิ่งนี้โดยแยก

ขั้นตอนที่ 2: สร้าง Tasker Task เพื่อโทรหา connectbot

  • สร้างงานใหม่ใน Tasker
  • เพิ่มการกระทำ จาก Misc ให้เลือก "เจตนาการกระทำ"
  • สาขาที่:
    • การดำเนินการ: android.intent.action.VIEW
    • Cat: ค่าเริ่มต้น
    • ข้อมูล: ssh url ในรูปแบบของ "ssh: // user @ host / # alias" (ไม่มีเครื่องหมายคำพูด) นามแฝงผู้ใช้และโฮสต์ที่นี่จะต้องตรงกับนามแฝงที่คุณตั้งค่าในขั้นตอนที่ 1
    • เป้าหมาย: กิจกรรม
    • คลิกทดสอบ Connectbot ควรเปิดและคำสั่งของคุณควรดำเนินการบนโฮสต์ระยะไกล

ขั้นตอนที่ 3: ใช้งานนี้ในทาซเคอร์ตามปกติ


มีวิธีในการกำหนดการเชื่อมต่อโดยทางโปรแกรมเช่นผ่าน Tasker และการเรียก intents หรือไม่?
Dang Khoa

ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ ฉันจำไม่ได้ว่าฉันพบข้อมูลเจตนาข้างต้นอย่างไร แต่โดยทั่วไปแล้วมันเป็น URL ssh มาตรฐาน มีเครื่องมือที่สามารถตรวจสอบ Intents สำหรับแอพได้ แต่ฉันไม่ได้ใช้
TREE

ฉันสามารถเพิ่มว่าถ้าคุณลบค่าเริ่มต้นสำหรับ ConnectBot และมีการติดตั้งไคลเอนต์อื่น ssh (เช่น BTEP) จากนั้น URL ssh จะแจ้งให้แอปพลิเคชันที่จะใช้ นี่เป็นการเน้นย้ำว่าข้างต้นเป็นสิ่งที่มีมาตรฐานทั้ง "ดู" และรูปแบบ ssh สิ่งเดียวที่เฉพาะเจาะจงกับ ConnectBot ในกรณีนี้คือ #alias ในตอนท้าย
TREE

5

ฉันรู้ว่ามันเป็นเธรดเก่า แต่ต้องการ +1 ความคิดเห็นเกี่ยวกับ BTEP

ฉันยังใช้ไบนารี ssh ของ BTEP ด้วยเช่นกัน แต่ฉันเรียกมันว่าเป็นเส้นทางแทนที่จะเชื่อมโยง /data/data/com.magicandroidapps.bettertermpro/bin/ssh root@192.168.1.1

หรือสร้างคู่ของคีย์และใช้การรับรองความถูกต้องของคีย์สาธารณะ /data/data/com.magicandroidapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l root 192.168.1.1

ฉันใช้คำสั่งดังกล่าวจาก SL4A r4 ในสคริปต์ต่างๆและทำงานได้ดี :)

ก่อนที่ฉันจะสามารถทำสิ่งนี้ได้ฉันต้อง chmod a + x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

เมื่อทำสิ่งนี้เสร็จแล้วและคุณทำการสำรอง / กู้คืน BTEP ด้วย TitaniumBackup การอนุญาตจะถูกเก็บไว้ซึ่งหมายความว่าหากคุณแฟลชรอมใหม่คุณสามารถคืนค่าแอพและสคริปต์ทั้งหมดของคุณจะทำงานอีกครั้ง


5

ฉันใช้BotBrew Basil Experimentalเรียบร้อยแล้วเมื่อใช้ Android 4.4 BotBrew Basil Experimental ขึ้นอยู่กับ apt-get ดังนั้นหลังจากติดตั้ง APK และ bootstraping ฉันเพิ่งทำapt-get install dropbearในรูทเชลล์เพื่อติดตั้งไคลเอนต์ SSH (และเซิร์ฟเวอร์)


3

ติดตั้งเทอร์มินัลอีมูเลเตอร์และ quickssh Quickssh ยังรวมถึง dropbear ไม่เสียค่าใช้จ่ายกับเงินของคุณซึ่งไม่ควรเพราะนี่มันง่ายมากและมันขึ้นอยู่กับ dropbear

https://play.google.com/store/apps/details?id=berserker.android.apps.sshdroid

find -name ssh ผู้ใช้โฮสต์ @

แก้ไขปัญหา


1
มองไปที่โปรแกรมนั้น (sshdroid by beserker) ฉันเห็นเฉพาะเซิร์ฟเวอร์ ssh ฉันลองเทอร์มินัลอีมูเลเตอร์โดยแจ็ค แต่ไม่เห็นคำสั่ง ssh และกำลังมองหา quickssh ใน play store ฉันไม่เห็นมัน ฉันเห็นเพียง quicksshd (โดย teslacoil) ซึ่งมีราคาเล็กน้อยและไม่ต้องสงสัยเลยว่าไม่ใช่ลูกค้า ssh
barlop

2

Terminal Emulator สนับสนุนสคริปต์ * อย่างแท้จริง อย่าเชื่อผู้ที่ไม่พูด คุณจะต้องเรียนรู้การเขียนสคริปต์เชลล์ BASH หากคุณยังไม่คุ้นเคย เขียนสคริปต์และบันทึกลงในการ์ด SD ของคุณ เรียกใช้ด้วย "sh filename" จากคำศัพท์

หากคุณชี้แจงว่าคุณต้องการ "script" เกี่ยวกับ SSH อย่างไรฉันอาจให้คำแนะนำที่ดีกว่าแก่คุณ

* (จริงๆแล้วมันเป็นระบบปฏิบัติการ Android ที่รองรับสคริปต์ BASH เทอร์มินัลอีมูเลเตอร์เพียงให้สิทธิ์การเข้าถึงเชลล์ Android ดังนั้นการสร้างสคริปต์จึงเป็นไปได้โดยเนื้อแท้)


อัปเดตคำถาม ฉันไม่ต้องการโทรสคริปต์ด้วย ssh ฉันต้องการโทร ssh จากสคริปต์
TREE

สิ่งที่ฉันได้รับ อีกครั้งหากคุณต้องการให้ข้อมูลเฉพาะฉันอาจได้รับความช่วยเหลือเพิ่มเติม
ch3mi0n

2

ในการเรียกใช้ ssh จากสคริปต์สิ่งที่คุณต้องทำคือตั้งค่าคีย์ ssh มีวิธีการมากมายในเว็บ แต่มีหน้าหนึ่งในวิกิ Cyanogen ที่อาจเหมาะกับผู้ใช้ Android มากกว่า เมื่อคุณตั้งค่าคีย์แล้วคำสั่ง ssh ทั่วไปของคุณจะมีลักษณะดังนี้: ssh -i / PATH / TO / KEY USER @ IP

คุณสามารถใส่ลงในสคริปต์เรียกใช้และคุณจะเข้าสู่ระบบในเครื่องระยะไกล

แต่นี่คือสิ่งที่ฉันคิดว่าคุณอยากจะทำ หากต้องการรันคำสั่งบนคอมพิวเตอร์ระยะไกลเพียงเพิ่มในเครื่องหมายคำพูดเดี่ยว: ssh -i / PATH / TO / KEY USER @ IP 'command'

ที่เรียกใช้งานคำสั่งบนเครื่องระยะไกลโดยไม่ต้องลงชื่อเข้าใช้คุณสามารถเรียกใช้คำสั่งด้วยตัวเลือกไพพ์การเปลี่ยนเส้นทางเป็นต้น แต่บางครั้งก็เป็นการง่ายกว่า ยกเว้นความล่าช้าดูเหมือนว่าจะดำเนินการคำสั่งภายในและสามารถใช้เหมือนกัน

Locale Execute สามารถเลือกได้ว่าจะรันคำสั่งใด หากไม่ได้ผลให้ลองวางไว้ในสคริปต์และใช้ Locale Execute เพื่อเรียกใช้สคริปต์

นอกจากนี้ฉันยังมีปัญหากับไบนารี ssh ที่อยู่บนโทรศัพท์และพบว่าการย้ายจาก / system / xbin และสร้างลิงค์ที่ / system / xbin / ssh ไปยังไบนารี Terminal Terminal ssh ที่เชื่อถือได้มากขึ้น BTEP ไบนารีอยู่ใน /data/data/com.magicandroidapps.bettertermpro/bin/ssh


2

Botbrewเป็นผู้จัดการแพ็คเกจสำหรับ Android ในไลค์ของokpgBSD หรือใหม่กว่าเช่นAPTเดเบียน ค่อนข้างดี มันไม่มีไคลเอนต์ ssh เป็นแพ็คเกจ แต่มันก็ดูไม่ยากที่จะใส่ถ้าคุณคุ้นเคยกับการสร้างแพ็คเกจของคุณเอง และอาจเป็นประโยชน์ในฐานะ toolchain สำหรับเมื่อคุณต้องการสร้างไบนารีและไลบรารี C / C ++ / etc อื่น ๆ

ดังนั้นแม้ว่านี่ไม่ใช่คำตอบโดยตรงมันอาจมีประโยชน์สำหรับบางคนที่จะรู้


ดี นอกจากนี้ยังอยู่ใน play store: play.google.com/store/apps/details?id=com.inportb.botbrew
TREE

น่าเศร้าที่ดูเหมือนว่า botbrew.com จะหยุดทำงานซึ่งจะบล็อกการติดตั้ง
TREE

มันแปลกเพราะฉันคิดว่าแพ็คเกจนั้นใช้โฮสต์บน GitHub
Ehtesh Choudhury


-1

AndFTP สามารถเชื่อมต่อผ่านพอร์ตใดก็ได้ที่คุณกำหนดค่าดังนั้นฉันจึงมั่นใจว่าสามารถเชื่อมต่อผ่าน SSH ได้ แต่ฉันไม่แน่ใจว่าการใช้สคริปต์เป็นเรื่องง่ายเพียงใด ฉันใช้แอพด้วยตัวเองตลอดเวลาสำหรับเซิร์ฟเวอร์การโฮสต์ของฉันและใช้งานได้ดี

ไม่แน่ใจว่าคุณสามารถใช้ SSH ด้วย Terminal Emulator ได้หรือไม่ แต่คุณสามารถลองได้เช่นกัน ฉันใช้แอพนั้นบ่อยครั้งเพื่อทำสิ่งที่ฉันขี้เกียจเกินไปที่จะทำกับ ADB


AndFTP ยอดเยี่ยม Terminal Emulator สามารถสคริปต์ได้หรือไม่?
TREE

ฉันไม่คิดอย่างนั้นถ้าไม่มีแอพอื่น ตามที่คุณกล่าวถึงข้างต้น Tasker อาจเป็นวิธีที่จะไปกับสิ่งนี้
เว็บ

-1

ใช้ปลั๊กอิน ssh สำหรับ Tasker? ไม่จำเป็นต้องใช้รูทหรือ ssh ไบนารี


7
ชื่อหนึ่ง คำตอบของคุณอาจเป็นประโยชน์ :)
อิซซี

มี "ปลั๊กอิน SSH ที่เรียกชำระแล้ว" สำหรับ Tasker แต่เป็นรุ่นเก่าและไม่ได้รับการพัฒนาอีกต่อไป การจัดการข้อผิดพลาดเกือบจะไม่มีอยู่แล้วดังนั้นจึงเป็นเพียง ssh และไม่มากขึ้น แต่มันได้ผล
ฟรังก์

-3

หากไคลเอนต์ ssh ง่าย ๆ น่าสนใจสำหรับคุณฉันสร้างภายใต้ Android-NDK Bionic ไลบรารี่ drobpear-ssh-client-only ftp://ftp.simtreas.ru/pub/my/dropbear/dropbear-ssh-only.tgz sourse และftp://ftp.simtreas.ru/pub/my/dropbear/sshไบนารี


นี่ไม่ใช่คำตอบทั่วไปที่น่าเศร้าและจะใช้ได้กับหนึ่งใน x86 / ARM / MIPS ซึ่งอาจเป็น ARM นอกจากนี้เนื้อหาที่ลิงก์อาจจะหายไปในบางครั้ง ROM แบบกำหนดเองส่วนใหญ่มีไคลเอ็นต์ cmdline ssh แท้ๆอยู่แล้ว
ce4
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.