ssh จาก Windows 10 หรือ Ubuntu เข้า CentOS 5 หรือ Linux เก่าๆไม่ได้ ทำยังไงดี
จาก ความเดิมตอนที่แล้ว ของคนที่แล้ว ( อย่าพึ่ง งง แต่ก็ งง )
มีคำถามเพิ่มมาอีกว่า "พอดีเจอปัญหา ssh เข้าเซิฟเวอร์ตัวเก่าไม่ได้" (CentOS 5.x) มันแจ้ง Error มาแบบนี้

Unable to negotiate with 192.168.1.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
วิธีแรกที่ง่ายที่สุดคือไปใช้ Putty
วิธีที่สองใช้ Cygwin
วิธีที่สาม ไม่อยากติดตั้งอะไรเพิ่ม เพราะใช้ PowerShell อยู่แล้วเลยลองไปถามลุงกู๋ แล้วได้คำตอบมาเป็นเรียงความตามนี้
- จากโพสนี้ linux - SSH: "no matching key exchange method found" when KexAlgorithm is listed as available - Server Fault
เค้าให้ตามไปอ่าน OpenSSH: Legacy Options - สร้างไฟล์ config ใน ssh หน้าตาประมาณนี้
Host 192.168.1.1
KexAlgorithms +diffie-hellman-group1-sha1
- จากนั้นลอง ssh ใหม่อีกรอบ ท่านก็จะได้ Error อีกตัวประมาณนี้
Unable to negotiate with 192.168.1.1 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
แฮร่~~~ อะไรวะเนี่ย กลับไปอ่านอีกรอบ อ๋อ เค้าให้เติมตัวนี้ไปด้วย
HostKeyAlgorithms +ssh-dss - ssh อีกทีถ้าไม่มีอะไรผิดปกติก็จะใช้งานได้เล๊ยยยยยย เย้
แต่ถ้าซวยๆหน่อย คุณจะได้เจอ Error: no matching MAC found ที่หน้าตาประมาณนี้
Unable to negotiate with 192.168.1.1 port 22: no matching MAC found. Their offer: hmac-sha1-96,hmac-md5,hmac-sha1,hmac-md5-96
แต่ไม่ต้องเป็นห่วงไป ถ้าคุณจะชิบหายแบบผม ผมมีทางออกมานำเสนอ (อ่านได้จากโพสนี้ Solved: Windows SSH giving no matching MAC found | Experts Exchange) เค้าจะบอกว่าให้คุณเติม MAC อะไรก็ได้ทีคุณมีในเครื่อง (หาได้จากคำสั่ง ssh -Q mac มันจะมีรายการออกมา)
สรุปสุดท้ายคุณก็จะได้ config ออกมาหน้าตาประมาณนี้
Host 192.168.1.1
KexAlgorithms +diffie-hellman-group1-sha1 HostKeyAlgorithms +ssh-dss MACs +hmac-md5 Ciphers aes256-cbc PubkeyAcceptedKeyTypes=+ssh-rsa
เป็นอันเสร็จพิธี ใช้งาน CentOS 5 ได้ตามต่อสบายจ้าาาาา
[ Edit@01/02/2025]
ไหนๆ ก็มาทางนี้แล้ว บางทีเซิฟเวอร์มันใช้กันหลายคน เราก็ไม่รู้ว่าที่ผ่านมาใครเซ็ตค่าอะไรไปบ้าง พอดีไปเจอปัญหาก็คือตอนส่งไฟล์ด้วย pscp/rsync มันให้ใส่รหัสผ่านตลอดทั้งๆที่เราก็เซ็ต public key ใน authorized_keys บนฝั่งเซิฟเวอร์ไปแล้ว พอไปค้นๆดูเลยไปเจอคำตอบตามโพสด้านล่างนี้
Why am I still getting a password prompt with ssh with public key authentication? - Unix & Linux Stack Exchange
เท่าที่อ่านๆดูคือให้เช็กพวก permission กับ group ด้วยว่ามันถูกต้องรึป่าว บนเซิฟเวอร์ที่ผมเจอปัญหาคือ permission เซ็ตถูกแล้ว แต่ group มันผิดตามรูปเลยจ้า
เท่าที่อ่านๆดูคือให้เช็กพวก permission กับ group ด้วยว่ามันถูกต้องรึป่าว บนเซิฟเวอร์ที่ผมเจอปัญหาคือ permission เซ็ตถูกแล้ว แต่ group มันผิดตามรูปเลยจ้า
Comments
Post a Comment