एंड्रॉइड पर रिमोट सर्वर से कनेक्शन की अनुमति देने के लिए एसएसएच कीज को कहां जोड़ें?


10

मैं एक रूट किए गए कस्टम एंड्रॉइड कर्नेल (जिंजरब्रेड) का उपयोग कर रहा हूं, और व्यस्त एसएसबी और टर्मिनल एमुलेटर ऐप का उपयोग करके पासवर्ड प्रमाणीकरण के साथ दूरस्थ एसएसएच सर्वर से कनेक्ट करने में सक्षम हूं। मैं ऑटो-लॉगिन के लिए एसएसएच कुंजी का उपयोग करने में सक्षम होना चाहता हूं; क्या यह संभव है? यदि हां, तो मुझे अपनी निजी कुंजी कहां रखनी चाहिए?

जवाबों:


10

यह काफी हद तक सहज नहीं है, लेकिन sshबिजीबॉक्स (मेरा, कम से कम) द्वारा प्रदान किया गया बाइनरी -iध्वज का समर्थन करता है , इसलिए आप जहां चाहें कुंजी को रख सकते हैं और इसका उपयोग कर सकते हैं:

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

के लिए प्रासंगिक मैन पेज प्रविष्टि -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 कमांड .shsh डायरेक्टरी की खोज करेगा ... शायद यह इसलिए है क्योंकि कोई $ HOME सेट नहीं है?
युतधम्मो

2
@Yuttadhammo: अजीब बात यह है कि $HOME(रूट के लिए) /dataमेरे फोन पर सेट है, लेकिन मुझे sshलगता है कि मैं वहां स्थापित करने की कोशिश करने वाली किसी भी निर्देशिका को अनदेखा करता हूं। मुझे कभी नहीं पता लगा कि ऐसा क्यों है, लेकिन मुझे वास्तव में इसे खोदने की जरूरत नहीं है।
14:27 पर एल्ड्रैरैथिस

@ युट्टधम्मो मेरे फोन में, echo $HOME(रूट के लिए भी) कुछ भी नहीं मिलता है। यदि आपका मामला भी ऐसा है, तो इसका कारण है कि आपका SSH क्लाइंट डिफ़ॉल्ट रूप से चाबियाँ नहीं देख सकता है। लेकिन, -iध्वज के साथ , आप डिफ़ॉल्ट पथ को ओवरराइड कर सकते हैं, इसलिए $ HOME देखने का कोई मतलब नहीं है। यह सही समाधान है यदि आपका ट्रिम किया हुआ एसएसएच क्लाइंट इसका समर्थन करता है। इसलिए, sdcard पर चाबियाँ लगाने के बाद इसे आज़माएं। यदि यह विफल रहता है, तो कोई अन्य तरीका नहीं है जब तक कि आप एसएसएच क्लाइंट को नहीं बदलते।
एंड्रॉयड क्विटो

महान। मेरे लिए काम किया।
user20203293928832

6

ConnectBot (एक समर्पित SSH क्लाइंट) स्थापित करें और चलाएं । मेनू कुंजी को टैप / दबाएं। मेनू से, टैप करें Manage Pubkeys। अगली स्क्रीन पर, फिर से मेनू कुंजी दबाएं / टैप करें। मेनू से, टैप करें Import


धन्यवाद मैं वास्तव में सिर्फ इतना किया - अच्छा ऐप; वहाँ कोई रास्ता नहीं है बस एक कुंजी डाल और कहीं व्यस्त है इसे लेने?
युतधम्मो

@ यूटाधामो मुझे नहीं लगता कि बिजीबॉक्स की डिफ़ॉल्ट पैकेजिंग एसएसएच क्लाइंट प्रदान करती है। क्या आप अपने SSH क्लाइंट (जो बाहरी उपयोगिता हो सकती है) के साथ अधिक विशिष्ट हो सकते हैं?
एंड्रॉइड क्सिटो

इसके अलावा, याद रखें .. क्योंकि बिजीबॉक्स एप्लेट्स मूल के वर्जन को ट्रिम कर दिया जाता है, आपकी कमांड लाइन एसएसएच क्लाइंट कुंजी के साथ प्रमाणीकरण का समर्थन नहीं कर सकती है, लेकिन इसकी संभावना नहीं है। बस मुझे अपने SSH क्लाइंट के बारे में बताएं।
बजे एंड्रॉइड क्वेसिटो

धन्यवाद, ConnectBot वह समाधान है जिसका मैं उपयोग करूंगा, लेकिन -i ध्वज वास्तव में प्रश्न का उत्तर देने के करीब है।
युतधम्मो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.