จะเพิ่มคีย์ SSH เพื่ออนุญาตการเชื่อมต่อไปยังเซิร์ฟเวอร์ระยะไกลบน Android ได้อย่างไร


10

ฉันใช้เคอร์เนล Android แบบกำหนดเองที่รูท (Gingerbread) และสามารถเชื่อมต่อกับเซิร์ฟเวอร์ SSH ระยะไกลด้วยการตรวจสอบรหัสผ่านโดยใช้ busybox และแอปเทอร์มินัลอีมูเลเตอร์ ฉันต้องการใช้คีย์ SSH สำหรับการเข้าสู่ระบบอัตโนมัติ เป็นไปได้ไหม ถ้าเป็นเช่นนั้นฉันจะใส่กุญแจส่วนตัวของฉันที่ไหน?

คำตอบ:


10

มันไม่ได้ค่อนข้างราบรื่น แต่sshไบนารีที่จัดทำโดย busybox (อย่างน้อยที่สุด) สนับสนุนการ-iตั้งค่าสถานะดังนั้นคุณสามารถใส่รหัสได้ทุกที่ที่คุณต้องการและใช้งาน:

ssh -i /path/to/key_file joeuser@somehost.com

รายการman page ที่เกี่ยวข้องสำหรับ-i(โดยมีข้อแม้ว่าข้อมูลเกี่ยวกับเส้นทางเริ่มต้นอาจไม่เหมือนกันใน Android):

-i identity_file

         Selects a file from which the identity (private key) for public
         key authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and
         ~/.ssh/id_rsa for protocol version 2.  Identity files may also be
         specified on a per-host basis in the configuration file.  It is
         possible to have multiple -i options (and multiple identities
         specified in configuration files).  ssh will also try to load
         certificate information from the filename obtained by appending
         -cert.pub to identity filenames.

ขอบคุณฉันคิดถึงสิ่งนั้น แต่ไม่เคยลองเลย ดูเหมือนว่าแปลกที่ไม่มีที่ที่คำสั่ง ssh จะค้นหาไดเรกทอรี. ssh ... อาจเป็นเพราะไม่มีชุด $ HOME?
yuttadhammo

2
@ Yuttadhammo: สิ่งแปลก ๆ คือ$HOME(สำหรับรูท) ถูกตั้งค่าไว้/dataในโทรศัพท์ของฉัน แต่sshดูเหมือนว่าจะไม่สนใจไดเรกทอรีใด ๆ ที่ฉันพยายามติดตั้งที่นั่น ฉันไม่เคยคิดออกเลยว่าทำไมถึงเป็นเช่นนั้น แต่ฉันก็ไม่จำเป็นต้องขุดลงไปจริงๆ
eldarerathis

@ Yuttadhammo ในโทรศัพท์ของฉันecho $HOMEไม่มีอะไรส่งคืน (แม้แต่รูท) หากเป็นกรณีของคุณเช่นกันนี่เป็นสาเหตุที่ลูกค้า SSH ของคุณไม่สามารถดูคีย์ได้ตามค่าเริ่มต้น แต่ด้วยการ-iตั้งค่าสถานะคุณสามารถลบล้างเส้นทางเริ่มต้นดังนั้นจึงไม่มีทางมอง $ HOME นี่เป็นวิธีแก้ไขที่ถูกต้องหากไคลเอนต์ SSH ที่ถูกตัดทอนของคุณรองรับ ดังนั้นลองใช้หลังจากวางคีย์บน sdcard แล้ว หากล้มเหลวจะไม่มีวิธีอื่นนอกจากคุณจะเปลี่ยนไคลเอนต์ SSH
Android Quesito

ยิ่งใหญ่ ทำงานให้ฉัน
user20203293928832

6

ติดตั้งและเรียกใช้ConnectBot (ไคลเอนต์ SSH เฉพาะ) แตะ / กดปุ่มเมนู Manage Pubkeysจากเมนูแตะ บนหน้าจอถัดไปให้กด / แตะปุ่มเมนูอีกครั้ง Importจากเมนูแตะ


ขอบคุณจริงฉันเพิ่งทำ - แอพที่ดี; จะไม่มีวิธีใดง่ายๆในการใส่รหัสที่ใดที่หนึ่งและให้ busybox หยิบมันขึ้นมา?
yuttadhammo

@ Yuttadhammo ฉันไม่คิดว่าบรรจุภัณฑ์เริ่มต้นของ Busybox ให้ลูกค้า SSH คุณจะเฉพาะเจาะจงมากขึ้นกับไคลเอนต์ SSH ของคุณ (ซึ่งอาจเป็นยูทิลิตี้ภายนอก)?
Android Quesito

นอกจากนี้โปรดจำไว้ว่า .. เนื่องจากแอปเพล็ต busybox ถูกตัดทอนเวอร์ชันดั้งเดิมไคลเอ็นต์บรรทัดคำสั่ง SSH ของคุณอาจไม่สนับสนุนการตรวจสอบสิทธิ์ด้วยรหัส แต่ไม่น่าเป็นไปได้ แค่บอกฉันเกี่ยวกับลูกค้า SSH ของคุณ
Android Quesito

ขอบคุณ ConnectBot เป็นวิธีแก้ปัญหาที่ฉันจะใช้ แต่แฟล็ก -i นั้นใกล้เคียงกับการตอบคำถามมากขึ้น
yuttadhammo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.