.net - ssh is insisting on reading the password from the console rather than stdin -
यह वही है जो मैं कर रहा हूं:
ssh_ = नई प्रक्रिया (); Ssh_.StartInfo.FileName = SshProvider; Ssh_.StartInfo.Arguments = "-t -t" + पर्यावरण। उपयोगकर्ता नाम + "@" + सर्वरनाम_; Ssh_.StartInfo.UseShellExecute = false; Ssh_.StartInfo.RedirectStandardInput = सच; Ssh_.StartInfo.RedirectStandardOutput = सच; Ssh_.StartInfo.RedirectStandardError = true; Ssh_.StartInfo.CreateNoWindow = सच; ssh_.Start (); नया थ्रेड (नया थ्रेडस्टार्ट (रीडएस्टाओट))। प्रारंभ (); नया थ्रेड (नया थ्रेडस्टार्ट (रीडएस्टेएटर एआरआर))। प्रारंभ ();
मैं stdout (या stderr) से पासवर्ड प्रॉम्प्ट पढ़ना चाहता हूं और पासवर्ड को stdin में लिखना चाहता हूं, लेकिन ssh कंसोल से लिख रहा है और पढ़ रहा है, जिस पर मैंने अपना मोनो ऐप लगाया था। मुझे समझ में नहीं आता कि ऐसा क्यों है, क्योंकि मैंने ऊपर दिए गए कोड में उन धाराओं को पुनः निर्देशित किया है।
ssh Stdin से नहीं पढ़ता है यह विशेष रूप से लिपियों या अन्य कार्यक्रमों से पासवर्ड पास करने की कोशिश करने से लोगों को रोकने के लिए विशेष रूप से डिजाइन किए जाने वाला बहुत ही जानबूझकर व्यवहार है। इस व्यवहार को अक्षम करने के लिए उनके पास कोई ध्वज नहीं है; इसे बदलने का कोई तरीका नहीं है।
स्वचालित लॉगिन करने का इरादा तरीका निजी संकेतक का उपयोग करने के लिए पासवर्ड संकेत को बायपास करने के लिए है। यह करने के लिए उच्च स्तर के कदम हैं:
- एक सार्वजनिक-निजी कुंजी युग्म बनाने के लिए क्लाइंट पर
ssh-keygen
चलाएं। - जोड़ें सार्वजनिक कुंजी फ़ाइल की सामग्री (जैसे
~ / .ssh / id_rsa.pub
) सर्वर की अधिकृत मेजबान फ़ाइल (जैसे~ / .ssh / authorized_keys2
)।
ऐसा करने से आप क्लाइंट को अपनी चाबियों का उपयोग करके सर्वर से कनेक्ट करने के लिए अधिकृत करते हैं ताकि कोई पासवर्ड की आवश्यकता न हो।
Comments
Post a Comment