ปัญหาที่เกิดขึ้น
หลังจากสร้าง instance ด้วย Amazon Linux 2023 แล้วก็ลองเชื่อมต่อ SSH ไปยัง EC2 instance ด้วย terminal software แต่ไม่สามารถเชื่อมต่อได้ ต้องแก้ไขอย่างไร
วิธีแก้ปัญหา
จาก Release Notes ของ OpenSSH ระบุว่า ตั้งแต่ OpenSSH 8.8 เป็นต้นไป การเชื่อมต่อด้วย ssh-rsa(RSA/SHA1)จะถูกปิดการใช้งานในค่าเริ่มต้น
This release disables RSA signatures using the SHA-1 hash algorithm by default.
ดังนั้นจึงจำเป็นต้องกำหนดค่า terminal software ที่รองรับ rsa-sha2-256/512 (RSA/SHA2) เพื่อตั้งค่าใช้งาน rsa-sha2-256/512 หรืออนุญาต ssh-rsa ในการตั้งค่า OpenSSH ที่ฝั่ง instance
ตรวจสอบข้อผิดพลาด
สภาพแวดล้อมที่เตรียมสำหรับการทดสอบในครั้งนี้มีรายละเอียดนี้
AMI:al2023-ami-2023.1.20230725.0-kernel-6.1-x86_64
terminal software:RLogin (x64) Version 2.28.4
จากนั้นเชื่อมต่อโดยสภาพแวดล้อมข้างต้นด้วยค่ามาตรฐานของ RLogin
จะแสดงข้อผิดพลาดขึ้น โดยจะระบุให้เปลี่ยนการตั้งค่าเป็น rsa-sha2-256/512
เปลี่ยนการตั้งค่า terminal software
เปลี่ยนการตั้งค่า RLogin ให้เชื่อมต่อด้วย rsa-sha2-256/512
- ในหน้าจอ RLogin ที่หัวข้อ [protocol] > [RSA2 authetication key signature method (only SHA1] จะแสดงตัวเลือกขึ้นมา
- เลือกที่ SHA2-512(หรือ SHA2-256)
- คลิกที่ปุ่ม [OK]
ทำการเชื่อมต่ออีกครั้ง
เมื่อทำการทดสอบอีกครั้งจะพบว่าสามารถเชื่อมต่อได้แล้ว
ตรวจสอบเวอร์ชั่นของ OpenSSH
หลังจากเชื่อมต่อได้แล้วมาลองตรวจสอบเวอร์ชั่นของ OpenSSH
$ ssh -V
OpenSSH_8.7p1, OpenSSL 3.0.8 7 Feb 2023
จะพบว่าถึงจะเป็นเวอร์ชั่นก่อน OpenSSH 8.8 แต่การเชื่อมต่อด้วย ssh-rsa จะถูกปิดใช้งานแล้วใน Amazon Linux 2023
โดยสามารถเพิ่มสิทธิ์ในการเชื่อมต่อได้ด้วยวิธีดังต่อไปนี้
วิธีอนุญาตการเชื่อมต่อกับ ssh-rsa(RSA/SHA1)
ใน
/etc/ssh/sshd_config
หากเพิ่มบรรทัดทางด้านล่างนี้เข้าไป
PubkeyAcceptedAlgorithms=+ssh-rsa
ก็จะสามารถเชื่อมต่อได้ผ่าน ssh-rsa(RSA/SHA1)
※ในบางสภาพแวดล้อมอาจจะเป็น 「sshd_config」จึงอาจจะต้องเปลี่ยนตำแหน่งและชื่อของไฟล์การตั้งค่าตามสภาพแวดล้อม
สุดท้ายนี้
ครั้งนี้เป็นเหตุการณ์ที่เกิดขึ้นบน Amazon Linux 2023 แต่ก็มีโอกาสที่จะเกิดขึ้นได้ในระบบอื่นๆที่มีการอัปเดตของ OpenSSH
โดยยังสามารถเชื่อมต่อได้โดยการตั้งค่าอนุญาตให้กับ ssh-rsa
แต่อาจจะมีปัญหาด้านความปลอดภัย แนะนำให้พิจารณาเชื่อมต่อกับ rsa-sha2-256/512 จะดีกว่า
ปัจจุบัน terminal software บางตัวอาจยังไม่รองรับ rsa-sha2-256/512 ดังนั้นก่อนใช้งานแนะนำให้ตรวจสอบรายละเอียดอีกครั้ง
บทความอ้างอิง
- 'OpenSSH: RSA/SHA1 disabled by default' - MARC (English)
- OpenSSH: Release Notes (English)
- チケット #36109: rsa-sha2-256, rsa-sha2-512公開鍵アルゴリズムのサポート - Tera Term - OSDN (Japanese)
- การอนุญาต SSH สำหรับการตรวจสอบรหัสผ่านด้วย Amazon Linux 2 ใน EC2 | DevelopersIO
- วิธีการเชื่อมต่อจาก EC2 ไปยัง EC2 อื่นด้วย SSH | DevelopersIO