Mengatasi Kesalahan Izin SSH di Dalam Aplikasi Anda

Pengguna SSH baru sering kali menemui jalan buntu. Mereka melihat kesalahan ini:

WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for 'id_rsa.pem' are too open.

Solusinya adalah perintah terminal sederhana: chmod 600 id_rsa.pem. Bagi para engineer, ini mudah. Namun bagi staf agensi atau operator IT yang tidak menggunakan terminal, ini adalah hambatan besar. Hal ini menyebabkan banyaknya tiket dukungan yang masuk secara terus-menerus.

Kami memutuskan untuk menyelesaikan masalah ini di dalam aplikasi kami. Kami membangun sistem untuk mendiagnosis dan memperbaiki izin secara otomatis.

Masalahnya

OpenSSH menolak untuk memuat kunci privat jika izinnya terlalu longgar. Jika orang lain dapat membaca kunci Anda, keamanan Anda hilang. Sebagian besar kunci secara default menggunakan 0644, yang dapat dibaca oleh siapa saja (world-readable). OpenSSH memerlukan 0600.

Solusi Kami

Kami menggunakan pendekatan dua fase untuk menangani hal ini.

Fase 1: Pemulihan pasca-kegagalan

Jika koneksi gagal karena masalah izin, UI akan menampilkan tombol Fix and retry. Mengekliknya akan menjalankan perbaikan dan mencoba kembali koneksi tersebut.

Fase 2: Pencegahan sebelum koneksi

Aplikasi memeriksa jalur kunci sebelum pengguna mengeklik koneksi. Jika izinnya salah, kami akan menampilkan peringatan. Pengguna dapat memilih untuk memperbaikinya atau tetap terhubung apa adanya.

Kami juga menangani Windows secara berbeda. Windows menggunakan ACL, bukan izin Unix. Kode kami mendeteksi platform tersebut dan menjalankan perintah yang benar, seperti icacls, untuk memperbaiki akses.

Mengapa kami tidak melakukan perbaikan otomatis secara diam-diam

Kami sempat mempertimbangkan untuk memperbaiki kunci secara otomatis saat startup. Namun, kami menolak ide ini. Beberapa alur kerja memerlukan izin khusus untuk kunci yang dibagikan. Jika kami mengubahnya tanpa bertanya, kami akan merusak alur kerja pengguna.

Aturan kami sederhana: Kami mendiagnosis segalanya, tetapi kami hanya memodifikasi file saat pengguna mengeklik sebuah tombol.

Hasilnya

Membangun UX yang menyerap hambatan teknis dapat mengurangi volume dukungan. Kami menunjukkan kepada pengguna apa yang salah dan menawarkan perbaikan satu klik. Hal ini menghilangkan hambatan psikologis dalam menggunakan terminal.

Sumber: https://dev.to/susumun/solving-permissions-are-too-open-from-inside-the-app-auto-diagnosing-and-auto-fixing-ssh-key-3j75