ช่วงนี้ผมได้ไป Implement HW ที่ SITE นึงด้วย RedHat 8X ครับ พบปัญหาว่าตัว FTP Server ของลูกค้าไม่ได้สักทีครับ ติด ERROR
ทบทวนกันก่อนว่าทำอะไรบ้าง
- Generate Private / Public Key เพื่อใช้สำหรับ SSH และ SFTP เพื่อทดสอบ
- การทดสอบ
- ทดสอบเชื่อมระหว่าง RedHat 8.X สามารถใช้งานได้
- เมื่อส่ง Public Key ไปใช้ FTP Server ของลูกค้า ปรากฏว่าเจอ Error sign_and_send_pubkey no mutual signature supported
- ทดสอบเพิ่มเติม
- ทดสอบเชื่อมระหว่าง RedHat 8.X กับ RedHat 7.X สามารถใช้งานได้
- ทดสอบติดตั้ง serv-u บน Windows Server ตามลูกค้าก็ใช้งานได้นะ
- หมายเหตุ : serv-u เจ้าของเดียวกับ Solar Wind ที่มีข่าวหลุดๆกันแหละครับ
หนทางสุดท้ายลองพ่น Log ออกมาครับ
- ตัว ssh ที option -vvv เอาไว้ใช้ให้ระบบมันพ่น debug log ออกมาครับ โดยการใช้งานไม่ได้ยากครับ ทดสอบทำได้เลย ยกตัวอย่าง เช่น
[invsbch@invsuatapp01 ~]$ ssh -vvv invsfile@10.22.160.30
- สิ่งที่ผมทำดู Log จากเครื่องที่ใช้งาน Key กับเครื่องที่ใช้งาน Key ไม่ได้ และนำ Log มาเทียบกันครับ
- ผลที่ได้เราจะพบว่า
- เครื่องที่ใช้งาน Key ได้ มีอัลกอริทึม ECDSA
- แต่เครื่องที่ใช้งานไม่ได้ ยังใช้อัลกอริทึม RSA โดยมีการกำหนด Key EXchange (kex) คือ diffie-hellman-group14-sha1
- RSA VS ECDSA มันต่างกันอย่างไร
- RSA เป็นการเข้ารหัส โดยใช้หลักของจำนวนเฉพาะ เป็นแนวคิดแรกๆที่ริเริ่มมาเลยครับ
- ECDSA เป็นการเข้ารหัส โดยใช้หลักการ Elliptic Curve ซึ่งมีข้อดี คือ
- ใช้พื้นที่น้อยกว่า แต่ได้ความแข็งแกร่งเทียบกับ key มาจาก RSA ครับ
- เมื่อใช้พื้นที่น้อย นั้นแสดงว่าใช้พลังของ CPU ในการประมวลผลน้อยด้วยครับ
- ถ่วงเวลาจากการถอดรหัสได้ช้ากว่า RSA (ที่ใช่คำว่าถ่วงเวลา เพราะ Security มันไม่มีอะไรที่ปลอดภัยตลอดครับ)
- พวก Crypto Currency อย่าง Bit Coin / Ethereum ใช้ Algorithm นี้ด้วยนะครับ
ECDSA มันดีแบบนี้แล้ว เราก็ถูกสิ
- ก็ไม่เชิงครับ เพราะ ถ้าเราจะไปบังคับให้เครื่องลูกค้า Upgrade OS หรือ Software ใหม่ๆ มันมีค่าใช้จ่ายตามมาด้วยครับ
- ทางแก้ง่ายๆ ยอม Config เฉพาะ User@Host ใช้ยอมใช้ KEX เก่าไปก่อนครับ
แก้ไขปัญหา
- สร้างไฟล์ ~.ssh/config
- กำหนด Config เฉพาะ User@Host ใช้ยอมใช้ KEX เก่าไปก่อนครับ
Host 10.2X.YY.ZZZ User TEST_APP IdentityFile ~/.sgh/id rsa KexAlgorithms diffie-hellman-group14-shal PubkeyAcceptedKeyTypes +ssh-rsa
- จากนั้นลองทดสอบ SSH หรือ SFTP ครับ (บางที่อาจจะ SSH ไม่ได้ อย่าง เช่น Windows Server รุ่นเก่าๆ เป็นต้นครับ
Reference (เขียน Blog ตอนนี้ได้ความรู้เยอะมากครับ)
- RHEL KM: What does it means: sign_and_send_pubkey no mutual signature supported - Red Hat Customer Portal
- นักวิจัยความปลอดภัยคาด RSA และ Diffie-Hellman จะไม่ปลอดภัยภายใน 5 ปี | Blognone
- OpenSSH ประกาศเตรียมเลิกรองรับกุญแจแบบ ssh-rsa เร็วๆ นี้ หลังพบแฮกเกอร์ปลอมกุญแจได้ในต้นทุน 1.5 ล้านบาท | Blognone
- ECDSA vs RSA: Everything You Need to Know (sectigostore.com)
- Public Key / Private Key คืออะไร สร้างยังไง แล้วเอาไปใช้ทำอะไรได้บ้าง (ตัวอย่าง Code ภาษา Java) (jittagornp.me)
- Key Exchange (KEX) Method Updates and Recommendations for Secure Shell (SSH) (ietf.org)
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.