Jika Anda memiliki instance Elastic Compute Service (ECS) yang menjalankan sistem operasi seperti Ubuntu atau CentOS Stream 9, Anda mungkin mengalami kegagalan saat mencoba terhubung dari jenis klien SSH tertentu (seperti FinalShell dan nuoshell) menggunakan kunci Rivest Shamir Adleman (RSA). Dokumen ini menjelaskan cara memperbaiki kegagalan koneksi tersebut.
Informasi latar belakang
RSA adalah algoritma asimetris yang dirancang untuk kriptografi kunci publik dan banyak digunakan dalam e-commerce. Algoritma ini memerlukan penggunaan pasangan kunci yang terdiri dari kunci publik dan privat. Pasangan kunci dihasilkan berdasarkan algoritma dan secara default, pasangan kunci yang dibuat di ECS menggunakan enkripsi RSA. Untuk informasi lebih lanjut, lihat Ikhtisar.
Kegagalan koneksi berbasis kunci RSA ke instance Ubuntu 22.04
Dalam protokol SSH, skema tanda tangan ssh-rsa menggunakan algoritma hash SHA-1 bersama dengan algoritma kunci publik RSA. Algoritma hash SHA-1 rentan terhadap serangan, sehingga skema tanda tangan ssh-rsa telah ditinggalkan di OpenSSH sejak rilis setelah versi 8.7.
Penghapusan skema tanda tangan ssh-rsa tidak mengharuskan penghentian penggunaan kunci RSA. Kunci RSA dapat menandatangani menggunakan beberapa algoritma, termasuk rsa-sha2-256 (RSA/SHA256), rsa-sha2-512 (RSA/SHA512), dan ssh-rsa (RSA/SHA1). Namun, hanya ssh-rsa (RSA/SHA1) yang dinonaktifkan secara default.
Deskripsi masalah
Saat mencoba terhubung ke instance Ubuntu 22.04 dari klien SSH (seperti FinalShell atau nuoshell) menggunakan kunci RSA, klien SSH mengembalikan kegagalan koneksi dengan log sshd berikut:
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth] Penyebab
OpenSSH pada versi sistem operasi terbaru tidak lagi mendukung skema tanda tangan ssh-rsa secara default. Jenis klien SSH tertentu, seperti FinalShell dan nuoshell, hanya mendukung ssh-rsa (RSA/SHA1) secara default dan tidak kompatibel dengan rsa-sha2-256 (RSA/SHA256) atau rsa-sha2-512 (RSA/SHA512), sehingga menyebabkan kegagalan koneksi.
Solusi
Gunakan salah satu metode berikut untuk memperbaiki masalah ini:
Metode 1: Gunakan metode enkripsi lain, seperti algoritma tanda tangan digital kurva eliptik (ECDSA) atau algoritma tanda tangan digital (DSA).
Metode 2: Gunakan jenis klien SSH lain untuk terhubung ke instance, seperti Workbench yang disediakan oleh Alibaba Cloud. Untuk informasi tentang koneksi berbasis Workbench, lihat Terhubung ke Instance Menggunakan Workbench.
Metode 3: Jalankan perintah berikut untuk mengizinkan penggunaan ssh-rsa (RSA/SHA1) dalam konfigurasi sshd.
Pentingssh-rsa (RSA/SHA1) dapat menimbulkan risiko keamanan. Lanjutkan dengan hati-hati.
echo 'PubkeyAcceptedAlgorithms=+ssh-rsa' >> /etc/ssh/sshd_config systemctl restart sshd
Kegagalan koneksi berbasis kunci RSA ke instance CentOS Stream 9 atau instance yang menjalankan versi sistem operasi lain
Versi sistem operasi yang terpengaruh
CentOS Stream 9
AlmaLinux 9
Rocky Linux 9
Red Hat Enterprise Linux 9
Fedora 33 dan yang lebih baru
Deskripsi masalah
Saat mencoba terhubung ke instance dari klien SSH (seperti FinalShell atau nuoshell) menggunakan kunci RSA, klien SSH mengembalikan kegagalan koneksi dengan log sshd berikut:
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]Penyebab
Secara default, ssh-rsa (RSA/SHA1) dinonaktifkan di CentOS Stream 9. Namun, jenis klien SSH tertentu, seperti FinalShell dan nuoshell, hanya mendukung ssh-rsa (RSA/SHA1) secara default dan tidak kompatibel dengan rsa-sha2-256 (RSA/SHA256) atau rsa-sha2-512 (RSA/SHA512), sehingga menyebabkan kegagalan koneksi.
Anda dapat menjalankan perintah update-crypto-policies --show untuk melihat kebijakan kriptografi sistem saat ini.
Solusi
Gunakan salah satu metode berikut untuk memperbaiki masalah ini:
Metode 1: Gunakan metode enkripsi lain, seperti ECDSA atau DSA.
Metode 2: Gunakan jenis klien SSH lain untuk terhubung ke instance, seperti Workbench yang disediakan oleh Alibaba Cloud. Untuk informasi lebih lanjut tentang cara terhubung ke instance menggunakan Workbench, lihat Metode untuk Terhubung ke Instance ECS.
Metode 3: Jalankan perintah berikut untuk mengubah kebijakan kriptografi ke level LEGACY.
PentingKebijakan LEGACY dapat menimbulkan risiko keamanan yang tidak diketahui. Lanjutkan dengan hati-hati.
update-crypto-policies --set LEGACY update-crypto-policies --show