मैं पोटीन का उपयोग करके एक लिनक्स मशीन (सेंटोस 6.4) से जुड़ता हूं। इस तथ्य को छोड़कर कि मैं पोटीन को केवल एक प्रकार के प्रोटोकॉल का उपयोग करने के लिए सेट कर सकता हूं, मैं वर्तमान के ssh कनेक्शन संस्करण (SSH1 या SSH2) को कैसे खोज सकता हूं?
मैं पोटीन का उपयोग करके एक लिनक्स मशीन (सेंटोस 6.4) से जुड़ता हूं। इस तथ्य को छोड़कर कि मैं पोटीन को केवल एक प्रकार के प्रोटोकॉल का उपयोग करने के लिए सेट कर सकता हूं, मैं वर्तमान के ssh कनेक्शन संस्करण (SSH1 या SSH2) को कैसे खोज सकता हूं?
जवाबों:
मुझे पता है कि यह एक पुराना प्रश्न है लेकिन जब से मैं इसके पार आया हूं, मैं वैकल्पिक तरीके से पोस्ट करने का विरोध नहीं कर सका।
जैसा कि cstamas ने सुझाव दिया है कि आप क्रियाशीलssh -v localhost
मोड पर डिबगिंग संदेश प्रदर्शित करने के लिए बस अपने स्वयं के लिए 127.0.0.1 ssh का उपयोग कर सकते हैं । हां, इस प्रक्रिया के माध्यम से आप संचार के शीर्ष पर देख सकते हैं और एसएसएच संस्करण प्राप्त कर सकते हैं जो आप वर्तमान में चला रहे हैं।
लेकिन यदि आप ssh man
पृष्ठ को पढ़ते हैं तो आपको -V
ssh पर विकल्प अधिक उपयोगी लगेगा । Ssh मैन पेज निकाल लिया :
-V संस्करण संख्या प्रदर्शित करें और बाहर निकलें।
-V वर्बोज मोड। इसकी प्रगति के बारे में डीबगिंग संदेश मुद्रित करने के लिए ssh। यह कनेक्शन, प्रमाणीकरण और कॉन्फ़िगरेशन समस्याओं को डीबग करने में सहायक है। कई -v विकल्प क्रियाशीलता को बढ़ाते हैं। अधिकतम 3 है।
इसलिए मुझे लगता है कि यह बस करना बेहतर होगा ssh -V
और इसके समान कुछ मिलेगा:
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
उम्मीद है की यह मदद करेगा।
पुट्टी सत्र में, लॉगिंग, "एसएसएच पैकेट और कच्चे डेटा" रेडियो बटन का चयन करें। अपनी पसंद के स्थान पर लॉग फ़ाइल को putty.log के रूप में चुनें। संबंध बनाओ। तुम्हे देखना चाहिए:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
SSH-2.0 का क्या अर्थ है, इसके विवरण के लिए नीचे देखें।
अन्य तरीके आप टेलनेट क्लाइंट का उपयोग करने की कोशिश कर सकते हैं लेकिन पोर्ट 22 को इंगित कर सकते हैं:
telnet test1 22
जब आप कनेक्ट करते हैं तो आप देखेंगे:
192.168.144.145 की कोशिश कर रहा है ... परीक्षण 1 से जुड़ा। पलायन चरित्र '^] है। SSH-2.0-OpenSSH_5.3
अंतिम पंक्ति वह है जो देखने के लिए है:
SSH-2.0-OpenSSH_5.3
यदि यह कहता है SSH-2.0
कि यह अच्छा है, तो आप SSH प्रोटोकॉल संस्करण 2 का समर्थन करने के लिए जिस ssh सर्वर से जुड़े हैं। यह SSH V1 प्रोटोकॉल ग्राहकों से कनेक्शन का समर्थन नहीं करेगा।
यदि आप देखते हैं:
SSH-1.99-OpenSSH_5.3
तब इसका मतलब है कि सर्वर एंड अभी भी एसएसएल प्रोटोकॉल वर्जन को सपोर्ट कर रहा है। इसकी sshd_config
फाइल में ऐसा कुछ है :
Protocol 1,2
प्रोटोकॉल 1 असुरक्षित है और इसका उपयोग नहीं किया जाना चाहिए।
तो सीधे पाने के लिए। यदि आप SSH-2 को देखते हैं जब आप दूरस्थ सर्वर के 22 को टेलनेट करते हैं तो आप केवल ssh प्रोटोकॉल संस्करण 2 का उपयोग कर सकते हैं क्योंकि सर्वर प्रोटोकॉल 1 का समर्थन नहीं करता है।
ऊपर cstamas उत्तर के अनुसार, -v ध्वज एक रेखा दिखाएगा:
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
या:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
आप version 2.0
वहां देखना चाहते हैं ।
आप अपने स्थानीय मशीन से नेटकैट का उपयोग करके इसे बहुत जल्दी प्राप्त कर सकते हैं, उदाहरण के लिए:
$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
मुझे यह बेहतर लगता है:
$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$
यहां लाभ यह है कि यह कनेक्शन खुले रूप से आयोजित नहीं होने के बाद से प्रोग्राम किया जा सकता है। पायथन के लिए, प्रयास करें:
ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
एकमात्र विधि जिसके बारे में मुझे पता है कि आवश्यकता है कि किसी के पास ssh लॉग प्रविष्टियों को देखने के लिए पर्याप्त विशेषाधिकार हैं /var/log/auth.log
।
$ echo $SSH_CONNECTION
127.0.0.1 12375 127.0.0.1 22
SSH_CONNECTION
चर का पहला और दूसरा क्षेत्र स्रोत आईपी और मेरे कनेक्शन के स्रोत पोर्ट को दर्शाता है। grep
उन मूल्यों के लिए बाय-बाय /var/log/auth.log
, मैं लॉग प्रविष्टि तब से पा सकता हूं जब मेरे ssh कनेक्शन को प्रमाणित किया गया था।
$ sudo grep -F ' from 127.0.0.1 port 12375 ' /var/log/auth.log | grep ssh
Jun 26 16:29:52 morton sshd[20895]: Accepted keyboard-interactive/pam for jim from 127.0.0.1 port 12375 ssh2
यह लॉग प्रविष्टि मुझे बताती है कि मेरा वर्तमान कनेक्शन ssh2 प्रोटोकॉल का उपयोग कर रहा है। बेशक, अगर ssh सत्र कई दिनों के लिए खुला है, तो लॉग प्रविष्टि /var/log/auth.log.0
या कुछ पुरानी auth.log
फ़ाइल में हो सकती है ।