मुझे वर्तमान कनेक्शन का वर्तमान ssh प्रोटोकॉल संस्करण कैसे मिल सकता है?


35

मैं पोटीन का उपयोग करके एक लिनक्स मशीन (सेंटोस 6.4) से जुड़ता हूं। इस तथ्य को छोड़कर कि मैं पोटीन को केवल एक प्रकार के प्रोटोकॉल का उपयोग करने के लिए सेट कर सकता हूं, मैं वर्तमान के ssh कनेक्शन संस्करण (SSH1 या SSH2) को कैसे खोज सकता हूं?


यह दिखाने में मदद कर सकता है कि आपने पहले से क्या शोध किया है
ड्रू खुरई

@DrewKhoury मैंने केवल इसका उत्तर ढूंढने के लिए Google के साथ प्रयास किया लेकिन कोई परिणाम नहीं मिला। कोई भी यह नहीं बताता है कि मैं वर्तमान कनेक्शन (उपयोग में) प्रोटोकॉल (ssh1 या ssh2) को कैसे देख सकता हूं।
कोडिएक

जवाबों:


46

एक बार जब आप कहते हैं:

ssh -v localhost

यह आपको सर्वर का सटीक संस्करण बताएगा।


4
ऐसा नहीं लगता कि यह वर्तमान कनेक्शन प्रकार को दर्शाता है।
--३३

18

मुझे पता है कि यह एक पुराना प्रश्न है लेकिन जब से मैं इसके पार आया हूं, मैं वैकल्पिक तरीके से पोस्ट करने का विरोध नहीं कर सका।

जैसा कि cstamas ने सुझाव दिया है कि आप क्रियाशीलssh -v localhost मोड पर डिबगिंग संदेश प्रदर्शित करने के लिए बस अपने स्वयं के लिए 127.0.0.1 ssh का उपयोग कर सकते हैं । हां, इस प्रक्रिया के माध्यम से आप संचार के शीर्ष पर देख सकते हैं और एसएसएच संस्करण प्राप्त कर सकते हैं जो आप वर्तमान में चला रहे हैं।

लेकिन यदि आप ssh manपृष्ठ को पढ़ते हैं तो आपको -Vssh पर विकल्प अधिक उपयोगी लगेगा । Ssh मैन पेज निकाल लिया :

-V संस्करण संख्या प्रदर्शित करें और बाहर निकलें।

-V वर्बोज मोड। इसकी प्रगति के बारे में डीबगिंग संदेश मुद्रित करने के लिए ssh। यह कनेक्शन, प्रमाणीकरण और कॉन्फ़िगरेशन समस्याओं को डीबग करने में सहायक है। कई -v विकल्प क्रियाशीलता को बढ़ाते हैं। अधिकतम 3 है।

इसलिए मुझे लगता है कि यह बस करना बेहतर होगा ssh -Vऔर इसके समान कुछ मिलेगा:

> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

उम्मीद है की यह मदद करेगा।


2
यह प्रोग्राम का संस्करण है , न कि किसी कनेक्शन के लिए प्रयुक्त प्रोटोकॉल। 3 साल पहले के उत्तर के रूप में सही ढंग से समझाया गया है, बहुत ही प्रोग्राम कॉन्फ़िगरेशन के आधार पर SSH1 और SSH2 प्रोटोकोल दोनों का समर्थन कर सकता है या नहीं।
dave_thompson_085

11

पुट्टी सत्र में, लॉगिंग, "एसएसएच पैकेट और कच्चे डेटा" रेडियो बटन का चयन करें। अपनी पसंद के स्थान पर लॉग फ़ाइल को 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वहां देखना चाहते हैं ।


4

आप अपने स्थानीय मशीन से नेटकैट का उपयोग करके इसे बहुत जल्दी प्राप्त कर सकते हैं, उदाहरण के लिए:

$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3

3

मुझे यह बेहतर लगता है:

$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$

यहां लाभ यह है कि यह कनेक्शन खुले रूप से आयोजित नहीं होने के बाद से प्रोग्राम किया जा सकता है। पायथन के लिए, प्रयास करें:

ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))

0

एकमात्र विधि जिसके बारे में मुझे पता है कि आवश्यकता है कि किसी के पास 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फ़ाइल में हो सकती है ।

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