2011-11-29 10 views
7

क्या इरादों के माध्यम से कनेक्टबॉट कार्यक्षमता तक पहुंचने का कोई तरीका है? मैं अपने आवेदन से एक एसएसएच-सत्र शुरू करना चाहता हूं और निजी/सार्वजनिक कुंजी के माध्यम से प्रमाणित करना चाहता हूं, और सत्र को बाद में बंद करना चाहता हूं। क्या यह कनेक्टबॉट के साथ संभव है और यदि हां, तो मैं इरादों को कैसे कॉल कर सकता हूं? दुख की बात है, मैं इस विषय :(इरादे के साथ कनेक्टबॉट का उपयोग

उत्तर

9

इस सवाल का जवाब क्या आप के लिए ssh सत्र का उपयोग करना चाहते पर निर्भर करता है पर किसी भी प्रलेखन नहीं मिला: यह कुछ कार्यक्रम संबंधी, या आप उपयोगकर्ता दिखाना चाहते हैं है एक टर्मिनल सत्र या कंसोल जहां वे मनमाने ढंग से कमांड टाइप कर सकते हैं? वह दूसरा विकल्प अधिकांश भाग के लिए काफी आसानी से समर्थित है, क्योंकि आप ConnectBot manifest का अध्ययन करने से देख सकते हैं - ऐप के पास ConsoleActivity के लिए एक इरादा फ़िल्टर पंजीकृत है जो इस पैटर्न से मेल खाता है:

  • कार्रवाई: android.intent.action.VIEW
  • uri: ssh://[email protected]:port/#nickname

... यह सत्र बाद में बंद नहीं होगा, लेकिन इसके अलावा, यह आपके द्वारा निर्दिष्ट, कनेक्शन के लिए ConnectBot के अपने बुनियादी ढांचे का उपयोग कर, और किसी भी रोजगार सब कुछ करना होगा एसएसएच कुंजी उपयोगकर्ता ने कनेक्टबॉट ऐप के भीतर पंजीकृत किया है। एक कार्यक्रम संबंधी फैशन में एक SSH सर्वर के विरुद्ध कुछ विशेष आदेश पर अमल करने के लिए अपने अनुप्रयोग के लिए :

वैकल्पिक रूप से, आप पूर्व विकल्प के बारे में बात हो सकती है।

यह वर्तमान में कनेक्टबॉट की आधिकारिक रिलीज द्वारा किसी भी तरह से समर्थित नहीं है। आपकी आवश्यकताओं के आधार पर, आप कल्पना कर सकते हैं कि आप किसी सर्वर के पते के साथ कनेक्टबॉट के इरादे को बंद कर देंगे और एक आदेश जिसे आप निष्पादित करना चाहते हैं; कनेक्टबॉट को कार्यान्वित करने के लिए यह बहुत कठिन नहीं होगा और यह आपको एसएसएच प्रोटोकॉल के बारे में बहुत ज्यादा सीखने का सिरदर्द बचाएगा। हालांकि, यह इरादा मौजूद नहीं है, और यदि यह किया गया तो यह बहुत खतरनाक होगा, फोन पर कोई भी ऐप रिमोट सर्वर पर उपयोगकर्ताओं के क्रेडेंशियल के साथ मनमाने ढंग से कोड निष्पादित करने के लिए इसका उपयोग कर सकता है।

org.openintents.ssh.BIND_SSH_AGENT_SERVICE

ConnectBot का यह समझौता संस्करण ConnectBot अनुमति देता है:

क्या मौजूद नहीं Agit, Android के लिए Git ग्राहक का समर्थन करने के लिए इस आशय मैं कुछ महीने पहले ConnectBot का एक समझौता संस्करण में बनाया है एसएसएच एजेंट की तरह कार्य करने के लिए - आपके ऐप एसएसएच कनेक्शन के प्रबंधन के लिए ज़िम्मेदार है, लेकिन आप आवश्यक क्रेडेंशियल प्राप्त करने के लिए कनेक्टबॉट पर कॉल कर सकते हैं - कनेक्टबॉट आपको यह बताएगा कि कनेक्शन के लिए यह कौन सी सार्वजनिक कुंजी उपलब्ध है, और डिजिटल शैल पर हस्ताक्षर करें प्रमाणीकरण के लिए आवश्यक nges।details of the protocol are on OpenIntents.org, लेकिन मूल रूप से आप आशय ConnectBot करने के लिए बाध्य करने के लिए, का उपयोग एक AIDL इंटरफ़ेस जो ssh-एजेंट कार्यक्षमता प्रदान करता है प्राप्त करने:

org.openintents.ssh.BIND_SSH_AGENT_SERVICE

सुरक्षा उपाय के रूप, अपने अनुप्रयोग की घोषणा करने के लिए यह इस का उपयोग करता है की आवश्यकता होगी

org.openintents.ssh.permission.ACCESS_SSH_AGENT

ConnectBot का समझौता संस्करण यहाँ Android बाजार बंद डाउनलोड किया जा सकता:

अनुमति है, या यह सेवा से आबद्ध होने में सक्षम नहीं होगा

https://market.android.com/details?id=com.madgag.ssh.agent

पैच के लिए स्रोत कोड यहाँ है:

http://code.google.com/r/robertotyley-connectbot-ssh-agent/source/list?name=ssh-agent

इस सार्वजनिक/निजी कुंजी प्रबंधन का ख्याल रखता है हालांकि, यह अभी भी आप वास्तव में भीतर ssh कनेक्शन लागू करने के लिए होने के साथ छोड़ देता है आपका ऐप मैं, ssh प्रोटोकॉल समर्थन के लिए sshj पुस्तकालय की सलाह देते हैं एक सरल 'कमांड' कनेक्शन के अपने उदाहरण देखें:

https://github.com/shikhar/sshj/blob/v0.6.1/src/main/java/examples/Exec.java

Bouncy कैसल क्रिप्टो libs सामान्य रूप से एन्क्रिप्शन एल्गोरिदम प्रदान करने के लिए जावा में उपयोग किया जाता है, हालांकि संस्करण एंड्रॉयड के साथ प्रदान की अपंग और नहीं है आसानी से अधिरोहित - फलस्वरूप आप ई.पू. libs के एक Android के अनुकूल पैकेजिंग के लिए खंखरा कैसल libs का उपयोग करना चाहिए:

https://github.com/rtyley/spongycastle

+0

"प्रोटोकॉल का ब्यौरा" ऐसा लगता है कि लिंक अब मर चुका है । – Equidamoid

संबंधित मुद्दे