Apakah kunci SSH publik Anda menyulitkan Anda? Cobalah salah satu solusi berikut.
SSH adalah alat yang berguna untuk menghubungkan ke mesin jarak jauh, namun Anda mungkin mengalami kesalahan "Izin ditolak (kunci publik)" yang melibatkan kunci publik Anda di Linux. Untungnya, ada beberapa perbaikan mudah yang dapat Anda coba untuk memecahkan masalahnya.
Apa Itu Kunci Publik?
Saat Anda membuat pasangan kunci untuk SSH di Linux, Anda akan diberikan kunci publik dan kunci pribadi. Kunci pribadi akan tetap bersama Anda sebagai rahasia yang dijaga ketat, namun kunci publik adalah apa yang akan dikirimkan ke server jarak jauh agar Anda dapat masuk tanpa kata sandi. Klien SSH lokal Anda akan mencocokkan kunci publik dengan kunci pribadi saat Anda terhubung.
Keuntungan cara ini adalah Anda hanya perlu memberikan kunci publik saja. Selama Anda merahasiakan kunci pribadi Anda, hal ini akan membuat Anda tetap aman jika kunci publik Anda disusupi. Kunci publik tidak akan berguna dengan sendirinya.
OpenSSH, klien dan server SSH yang paling banyak digunakan di dunia sumber terbuka, memerlukan file yang berisi apa saja kunci publik pada mesin jarak jauh (".ssh/authorized_keys" di direktori home Anda), untuk memiliki izin tertentu. Ini tidak akan berfungsi jika izin menulis ditetapkan untuk pengguna lain, yang dikenal sebagai "dapat ditulis oleh dunia". Karena nama direktori dimulai dengan titik (.), maka nama tersebut tidak akan muncul di daftar ls mana pun kecuali Anda menggunakan memerintah
aku -A.Izin mungkin berubah jika file disalin dari komputer lain atau Anda membuatnya sendiri. Untungnya, hal ini mudah diperbaiki.
Periksa Izin Kunci Publik Anda
File otor_keys hanyalah file teks biasa yang berisi semua kunci publik dari klien yang Anda inginkan agar dapat masuk ke akun Anda di mesin jarak jauh. Untuk melihat izinnya, gunakan perintah ls dengan opsi -l:
ls -l ~/.ssh/authorized_keys
Ini akan menampilkan pengaturan izin untuk pemilik, grup, dan pengguna lain. Perhatikan enam huruf terakhir dalam string. Jika Anda melihat "w" di dalamnya, itu berarti grup tersebut atau orang lain dapat menulis ke sana, sehingga membuatnya tidak aman.
Anda ingin file ini dapat ditulis oleh Anda, namun tidak oleh grup atau orang lain. Untuk memberikan akses kepada pengguna yang benar, Anda dapat mengubah izin dengan chmod.
Ada dua cara: secara numerik dan simbolis.
Cara numeriknya lebih singkat, tetapi Anda harus menghafal angka izin oktalnya:
chmod 700 ~/.ssh/authorized_keys
Metode simbolik lebih bersifat mnemonik:
chmod go-w ~/.ssh/authorized_keys
Menyalin Kunci dengan Aman Menggunakan ssh-agent
Anda dapat secara manual menyalin dan menempelkan kunci publik apa pun dari mesin Anda ke dalam ~/.ssh/.authorized_keys file, tetapi menggunakan program ssh-agent akan mengurangi kemungkinan kesalahan izin.
Untuk memulai ssh-agent, gunakan perintah ini:
eval "$(ssh-agent-s)"
Untuk masuk ke server jarak jauh menggunakan ssh-agent, gunakan opsi -A dengan ssh
ssh -A [email protected]
Periksa Pengaturan sshd Server Jarak Jauh
Jika salah satu upaya ini gagal, Anda mungkin harus membuat beberapa perubahan konfigurasi pada server sshd di mesin jarak jauh jika Anda memiliki akses root. Jika tidak, Anda mungkin harus menghubungi administrator sistem untuk membantu Anda mengatasi masalah koneksi SSH. Ini adalah metode pilihan terakhir karena dapat membuat sistem Anda menjadi kurang aman.
File konfigurasi seluruh sistem untuk sshd adalah /etc/ssh/sshd_config. Karena dimiliki oleh root, Anda perlu menggunakan sudo untuk mengeditnya. Misalnya, untuk mengeditnya dengan Vim:
sudo vim /etc/ssh/sshd_config
Untuk mengaktifkan sshd agar Anda dapat masuk meskipun file otor_keys Anda dapat ditulis oleh dunia, setel opsi "StrictModes" ke "tidak" di file ini.
Simpan dan mulai ulang server SSH:
sudo systemctl restart sshd.service
Sekarang Anda Dapat Memperbaiki Kesalahan Izin Kunci Publik SSH
Anda mungkin mengalami kesalahan terkait kunci publik SSH pada sistem jarak jauh. Untungnya, sering kali yang harus Anda lakukan hanyalah memeriksa dan mengatur izin file sehingga tidak ada orang lain yang dapat melihat kunci Anda. Anda juga dapat menggunakan ssh-agent untuk koneksi yang lebih andal. Sebagai upaya terakhir, Anda dapat membuat server SSH tidak terlalu ketat.