เซิร์ฟเวอร์ SSH (และ SFTP) บน Android ที่ค้นพบได้ผ่าน avahi / bonjour


16

ฉันต้องการให้อุปกรณ์ Android (Samsung Galaxy) ของฉันสามารถค้นพบได้ผ่าน avahi / bonjour เมื่อเชื่อมต่อกับเครือข่าย WiFi และจากนั้นสามารถเข้าถึงระบบไฟล์ผ่าน SSH (SFTP)

สำหรับฉันนั่นเป็นวิธีที่คุ้นเคยและสะดวกในการเข้าถึงอุปกรณ์ต่าง ๆ ในเครือข่ายท้องถิ่นของฉัน: ค้นหาบริการ SSh ของพวกเขาผ่านทาง avahi / bonjour (ไม่ต้องจัดการกับที่อยู่ IP) และเพื่อให้พวกเขา ฉันจะใช้วิธีนี้สำหรับระบบ GNU / Linux ของฉัน (เช่น Ubuntu)

มีซอฟต์แวร์ฟรี (= libre - หรือเปล่าเพราะฉันซาบซึ้งในอิสรภาพของการแฮ็ก) สำหรับ Android ที่จะใช้งานนี้คือ:

  • avahi / bonjour รองรับ Android เพื่อให้อุปกรณ์ Android สามารถเข้าถึงได้โดยใช้ชื่อในโดเมน. local (แทนที่จะเป็นเพียงแค่ที่อยู่ IP)
  • และเซิร์ฟเวอร์ SSH ที่รองรับการเผยแพร่ตัวเองผ่าน Avahi / bonjour (mdnssd)

เพียงแค่ความปรารถนาเดียวกัน - android.stackexchange.com/questions/20907/ … : เพื่อ ssh ไปยัง Android ไม่ใช่ IP แต่เป็นโดยชื่อที่ได้รับผ่าน zeroconf / bonjour / avahi / mdns (ไม่ว่าคุณจะเรียกมันว่าอะไร) มันจะดียิ่งขึ้นถ้าบริการ SSH จะเผยแพร่ผ่าน zeroconf / bonjour / avahi / mdns / dnssd (ไม่ว่าคุณจะเรียกมันว่าอะไร)
imz - Ivan Zakharyaschev

ในฐานะที่เป็นส่วนหนึ่งของ SSH อยากมีอยู่แล้ว Q & As: android.stackexchange.com/questions/9905/... , android.stackexchange.com/questions/15503/... (แม้ว่าฉันจะต้องตรวจสอบว่าโซลูชั่นที่แนะนำนั้นเป็นซอฟต์แวร์ฟรี / libre - เพื่อตอบคำถามของฉัน) ส่วนสนับสนุน avahi / bonjour / zeroconf ของคำถามของฉันคือไม่มีคำตอบแม้ว่า ...
imz - Ivan Zakharyaschev

2
ฉันรู้ว่ามันไม่เหมือนกัน แต่ในขณะที่ค้นหา "การแก้ปัญหาขั้นสุดท้าย": ฉันแนะนำให้เราเตอร์ DHCP ของฉันกำหนดอุปกรณ์ IP แบบคงที่แล้วกำหนดค่าด้วย DNS ท้องถิ่นของฉัน (คุณสามารถทำได้ด้วย/etc/hosts) ดังนั้นฉันไม่จำเป็นต้องจำ IP แต่อุปกรณ์ "ชื่อเล่น" ซึ่งค่อนข้างง่ายในการเปรียบเทียบ
อิซซี

@ อิซซี่: ฉันเห็นขอบคุณนั่นเป็นวิธีแก้ปัญหาที่เหมาะสมมาก แต่น่าเสียดายที่ในกรณีของฉันมันก็ดูเหมือนว่าฉันมี (ตามที่เราเตอร์) basestation สนามบินมากซึ่งไม่สนับสนุน "จอง DHCP" นอกจากนี้ยังเป็นการดีที่จะสามารถเชื่อมต่อกับอุปกรณ์ด้วย "ชื่อเล่น" ในสถานการณ์เมื่อฉันเป็น "แขก" (ในเครือข่ายที่ฉันไม่ได้กำหนดค่า)
imz - Ivan Zakharyaschev

2
แน่นอนว่านั่นเป็นที่เข้าใจมาตั้งแต่ต้น - นั่นคือเหตุผลที่ฉันคิดว่ามันเป็นวิธีการแก้ปัญหาจนกว่าคุณจะพบทางออกที่แท้จริง มีแอพที่อนุญาตให้คุณกำหนดค่า "IP คงที่ตามต้องการ / ตามเครือข่าย" (ตรงข้ามกับ "DHCP คงที่") ซึ่งควรทำงานได้แม้กระทั่งกับฐานการบินที่รุนแรงของคุณ หากคุณสนใจฉันสามารถสรุปได้และวางไว้ในคำตอบ (พร้อมกับความคิดเห็นข้างต้นของฉัน)
Izzy

คำตอบ:


2

ฉันใช้ SSHelper ฟรี (โดยไม่ต้องรูท) เนื่องจากเพิ่งเพิ่มการแพร่ภาพ zeroConf มันให้เซิร์ฟเวอร์ SSH และ RSYNC (การถ่ายโอนไฟล์) ในขณะที่ยังออกอากาศชื่อ ZeroConf ไคลเอนต์ avahi / bonjour อื่นสามารถเชื่อมต่อโดยไม่จำเป็นต้องรู้ชื่อโฮสต์ android อธิบายรายละเอียดเพิ่มเติมในคำตอบอื่น ๆ นี้: ตั้งชื่อโฮสต์สำหรับ SSHelper


ขอบคุณมากสำหรับข้อมูล! อย่างน้อยตอนนี้ฉันก็รู้ว่ามีความเป็นไปได้ที่จะตั้งค่านี้ ฉันชอบใช้ซอฟต์แวร์ฟรี (= libre, open-source) ฉันควรพิจารณา SSHelper แล้วหรือไม่ .. (ฉันยังไม่รู้ว่ามันเป็นซอฟต์แวร์เสรีหรือไม่)
imz - Ivan Zakharyaschev

@glenschler สวัสดีฉันเพิ่งลอง SSHelper แต่ฉันไม่ได้คิดวิธีการเชื่อมต่อ o ssh โดยใช้ชื่อ ผมได้ตรวจสอบออกมารหัสที่มาและดูเหมือนว่าจะใช้ "SSHelper" เป็นชื่อ ZeroConf ssh SSHelper:2222แต่ฉันไม่สามารถเชื่อมต่อกับมันชอบดังนั้น: คำแนะนำ / เคล็ดลับใด ๆ ขอบคุณ
George Profenza

@ george-profenza ฉันไม่ทราบว่าซอร์สโค้ดพร้อมใช้งานแล้ว ฉันจะต้องตรวจสอบ คุณควรเรียกดูเครือข่ายของคุณสำหรับชื่อ "avahi" ทั้งหมด สิ่งนี้จะแตกต่างจากเครื่อง mac หรือ linux ของคุณ android.stackexchange.com/questions/42358/…
glenschler

@glenschler ฉันใช้ avahi กับ Raspberry Pi และหลังจากติดตั้งแล้วฉันก็สามารถเข้าถึง pi ได้ในฐานะ rpi.local บน windows ฉันต้องติดตั้งบริการ bonjour ฉันพยายามเข้าถึง ssh / http ใช้ชื่อโฮสต์ SSHelper (ซึ่งฉันเห็นรายการในการเรียกใช้ mac dns-sd -B) แต่ฉันไม่สามารถเชื่อมต่อได้ คุณเชื่อมต่อโทรศัพท์โดยใช้ชื่อ (คุณใช้ชื่ออะไร) กับ SSHelper
George Profenza

มี SSHelper รุ่นใหม่ 5.5 ใช่เพื่อตอบคำถามก่อนหน้านี้มันเป็นซอฟต์แวร์ฟรี ตอนนี้คุณสามารถกำหนดค่าชื่อที่กำหนดเอง! คำแนะนำของฉันมีรายละเอียดที่นี่android.stackexchange.com/questions/42358/…
glenschler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.