Jika Terminal macOS melaporkan “UNPROTECTED PRIVATE KEY FILE” atau mengatakan kunci SSH Anda terlalu mudah diakses, batasi akses ke kunci privat dan periksa direktori .ssh. Buka Terminal dan jalankan chmod 600 pada file kunci yang sebenarnya Anda gunakan. Ini membuatnya hanya dapat dibaca dan ditulis oleh akun Anda; SSH mengabaikan file kunci privat yang dapat diakses oleh pengguna lain. Manual ssh(1) OpenBSD
Perbaiki izin kunci privat
Pertama, identifikasi file kuncinya. Nama kunci privat default yang umum pada SSH mencakup id_ed25519 dan id_rsa, tetapi Anda mungkin memiliki nama atau lokasi lain. Akhiran .pub mengidentifikasi kunci publik; jangan menerapkan perbaikan ini pada file tersebut alih-alih pada kunci privat.
Untuk kunci Ed25519 default, masukkan:
chmod 600 "$HOME/.ssh/id_ed25519"
Untuk kunci lain, ganti id_ed25519 dengan nama file sebenarnya. Menempatkan jalur di dalam tanda kutip mencegah spasi dan karakter shell lainnya dalam nama file diperlakukan sebagai sintaksis. Jika kunci berada di tempat lain, gunakan jalur lengkapnya di dalam tanda kutip. 600 memberikan akses baca dan tulis kepada pemilik serta menghapus akses untuk grup dan pengguna lainnya. Manual chmod(1) OpenBSD
Anda dapat memeriksa mode yang dihasilkan dengan ls -l "$HOME/.ssh/id_ed25519". Tampilan yang umum diawali dengan -rw-------; tiga karakter izin pertama setelah jenis file menunjukkan akses pemilik, dan kelompok karakter sisanya menunjukkan tidak ada akses untuk grup atau lainnya. Pemilik file juga harus akun Anda. Jika file tersebut milik pengguna lain, chmod mungkin gagal atau klien SSH mungkin masih belum dapat menggunakannya. Periksa kepemilikan dengan ls -l; hindari mengubah kepemilikan secara sembarangan, terutama dengan sudo, karena perbaikan yang tepat bergantung pada alasan mengapa file tersebut milik orang lain.
Periksa direktori .ssh
Manual SSH menyarankan agar ~/.ssh/ dapat dibaca, ditulis, dan dicari oleh pemiliknya, serta tidak dapat diakses oleh orang lain. Jika SSH melaporkan masalah izin untuk direktori itu sendiri, jalankan:
chmod 700 "$HOME/.ssh"
Ini menghapus akses grup dan lainnya sekaligus memberi akun Anda akses penuh ke direktori. Jika kunci disimpan di folder yang berbeda, periksa setiap direktori dalam jalurnya: akun memerlukan izin pencarian (eksekusi) untuk menjangkau file tersebut. Jangan menjalankan chmod secara rekursif di seluruh direktori home atau folder .ssh Anda sebagai langkah perbaikan pertama; hal itu dapat mengubah izin pada file-file tidak terkait yang memiliki kebutuhan berbeda. Manual ssh(1) OpenBSD
Pastikan SSH menggunakan kunci tersebut
Kunci yang telah diperbaiki masih bisa tampak tidak berfungsi jika SSH mencari di tempat lain atau menawarkan identitas yang berbeda. Gunakan -i untuk menentukan kunci bagi satu koneksi. Ganti akun dan host contoh dengan milik Anda sendiri:
ssh -i "$HOME/.ssh/id_ed25519" user@example.com
Opsi -i memilih file identitas yang digunakan untuk autentikasi kunci publik. Manual ssh(1) OpenBSD Untuk log koneksi yang lebih mendetail, tambahkan -v:
ssh -v -i "$HOME/.ssh/id_ed25519" user@example.com
Jika Anda mengelola beberapa host, Anda dapat menyetel IdentityFile di ~/.ssh/config; blok Host menentukan pengaturan koneksi mana yang berlaku. Klien mungkin juga mencoba kunci yang disediakan oleh ssh-agent. IdentitiesOnly yes dapat membatasi identitas yang ditawarkan hanya pada file identitas yang dikonfigurasi saat agen memuat banyak kunci. Manual ssh_config(5) OpenBSD
Ketahui kapan kesalahan berada di tempat lain
Peringatan izin kunci privat lokal berbeda dari Permission denied (publickey). Yang terakhir dapat berarti server tidak mengenali kunci publik yang cocok, nama pengguna salah, atau SSH mencoba identitas lain. Kunci publik yang sesuai dengan kunci privat Anda harus diotorisasi untuk akun di host jarak jauh; mengubah izin lokal tidak memasang kunci publik tersebut di server. Manual ssh(1) OpenBSD
Jika chmod mengembalikan pesan “Operation not permitted,” periksa apakah Anda adalah pemilik file tersebut dan apakah jalurnya mengarah ke kunci yang Anda maksud. Hindari membuat kunci privat dapat dibaca secara luas hanya untuk membungkam peringatan: pembatasan SSH melindungi kredensial tersebut, dan menghapusnya dapat menyebabkan klien menolak kunci tersebut. Setelah kunci privat dan direktorinya memiliki izin yang sesuai, coba lagi dengan -v dan ikuti output diagnostik untuk membedakan masalah file lokal dari masalah autentikasi atau sisi server.
Sumber
ssh(1) — OpenBSD manual pages — OpenBSD
ssh_config(5) — OpenBSD manual pages — OpenBSD
chmod(1) — OpenBSD manual pages — OpenBSD