ฉันจะค้นหาเวอร์ชันการเชื่อมต่อปัจจุบันของโปรโตคอล ssh ได้อย่างไร


35

ฉันเชื่อมต่อกับเครื่อง linux (centos 6.4) ใช้ผงสำหรับอุดรู ยกเว้นจากข้อเท็จจริงที่ว่าฉันสามารถตั้งค่า putty ให้ใช้เพียงหนึ่งชนิดของโปรโตคอลฉันจะค้นหารุ่นการเชื่อมต่อ ssh ปัจจุบัน (SSH1 หรือ SSH2) ได้อย่างไร?


มันสามารถช่วยแสดงให้เห็นว่างานวิจัยที่คุณได้ทำไปแล้ว
Drew Khoury

@DrewKhoury ฉันลองใช้ google เพื่อหาคำตอบเท่านั้น แต่ไม่พบผลลัพธ์ในเรื่องนี้ ไม่มีใครอธิบายว่าฉันจะเห็นการเชื่อมต่อปัจจุบัน (ใช้งาน) โปรโตคอล (ssh1 หรือ ssh2) ได้อย่างไร
จักรราศี

คำตอบ:


46

เมื่อคุณอยู่ในที่คุณพูดว่า:

ssh -v localhost

มันจะบอกคุณถึงรุ่นที่แน่นอนของเซิร์ฟเวอร์


4
ดูเหมือนว่านี่จะแสดงประเภทการเชื่อมต่อปัจจุบัน
จักรราศี

18

ฉันรู้ว่านี่เป็นคำถามเก่า แต่เมื่อฉันเจอมันฉันไม่สามารถต่อต้านการโพสต์วิธีอื่นได้

ตามที่cstamasแนะนำคุณสามารถใช้ssh -v localhostคุณเพียงแค่ ssh กับตัวเอง 127.0.0.1 ในโหมด verbose ซึ่งจะแสดงข้อความการดีบักของความคืบหน้า ใช่ผ่านกระบวนการนี้คุณสามารถดูด้านบนของการสื่อสารและคุณสามารถรับรุ่น SSH ที่คุณกำลังทำงานอยู่

แต่ถ้าคุณอ่านssh manหน้านี้คุณจะพบว่า-Vตัวเลือกใน ssh มีประโยชน์มากกว่า นำหน้า man sshออก:

-V แสดงหมายเลขรุ่นและออก

โหมด v- verbose ทำให้ ssh พิมพ์ข้อความดีบั๊กเกี่ยวกับความคืบหน้า สิ่งนี้มีประโยชน์ในการแก้จุดบกพร่องการเชื่อมต่อการตรวจสอบและปัญหาการกำหนดค่า ตัวเลือก -v หลายตัวช่วยเพิ่มรายละเอียด สูงสุดคือ 3

ดังนั้นฉันคิดว่ามันจะดีกว่าที่จะทำssh -Vและทำสิ่งที่คล้ายกับ:

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

หวังว่านี่จะช่วยได้


2
นั่นเป็นรุ่นของโปรแกรมไม่ใช่โปรโตคอลที่ใช้สำหรับการเชื่อมต่อ ตามที่อธิบายไว้ 3 ปีก่อนหน้านี้คำตอบอย่างถูกต้องโปรแกรมเดียวกันสามารถรองรับทั้ง prothols SSH1 และ SSH2 หรือไม่ขึ้นอยู่กับการกำหนดค่า
dave_thompson_085

11

สีโป๊ว ในเซสชั่นเข้าสู่ระบบเลือกปุ่มตัวเลือก "แพ็คเก็ต SSH และข้อมูลดิบ" เลือกไฟล์บันทึกเป็น putty.log ในตำแหน่งที่คุณเลือก ทำการเชื่อมต่อ คุณควรเห็น:

Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2

ดูรายละเอียดด้านล่างเกี่ยวกับความหมายของ SSH-2.0

วิธีการอื่น คุณสามารถลองใช้ไคลเอ็นต์ telnet ได้ แต่ชี้ไปที่พอร์ต 22:

telnet test1 22

เมื่อคุณเชื่อมต่อคุณจะเห็น:

ลอง 192.168.144.145 ... เชื่อมต่อกับ test1 ตัวละคร Escape คือ '^]' SSH-2.0-OpenSSH_5.3

บรรทัดสุดท้ายคือบรรทัดที่ต้องค้นหา:

SSH-2.0-OpenSSH_5.3

ถ้ามันบอกSSH-2.0ว่าเป็นสิ่งที่ดีเซิร์ฟเวอร์ ssh ที่คุณเชื่อมต่อเพื่อรองรับเฉพาะโปรโตคอล SSH เวอร์ชัน 2 จะไม่รองรับการเชื่อมต่อจากไคลเอ็นต์โปรโตคอล SSH V1

ถ้าคุณเห็น:

SSH-1.99-OpenSSH_5.3

จากนั้นหมายความว่าปลายเซิร์ฟเวอร์ยังคงรองรับ SSL Protocol เวอร์ชัน 1 มีsshd_configไฟล์ดังนี้:

Protocol 1,2

โพรโทคอล 1 มีความเสี่ยงและไม่ควรใช้

เพื่อให้ตรงนั้น หากคุณเห็น SSH-2 เมื่อคุณ telnet ไปยังพอร์ต 22 ของเซิร์ฟเวอร์ระยะไกลคุณจะสามารถใช้ ssh Protocol รุ่น 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

คุณสามารถรับสิ่งนี้ได้อย่างรวดเร็วโดยใช้ netcat จากเครื่องของคุณตัวอย่างเช่น:

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

3

ฉันชอบสิ่งนี้ดีกว่า:

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

ประโยชน์ที่นี่คือมันสามารถทำได้โดยทางโปรแกรมเนื่องจากการเชื่อมต่อไม่ได้เปิดค้างไว้ สำหรับ Python ให้ลอง:

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ตัวแปรระบุ IP ต้นทางและพอร์ตต้นทางของการเชื่อมต่อของฉัน โดยgrep-ing สำหรับค่าเหล่านั้น/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ไฟล์ที่เก่ากว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.