Merupakan ide bagus untuk masuk ke server SSH Anda tanpa kata sandi. Serius, singkirkan itu. Tidak perlu menggunakan kata sandi di salah satu layanan yang paling banyak diserang di server Linux, bukan? Mengamankan server SSH menggunakan otentikasi berbasis kata sandi standar adalah ide yang buruk. Penyerang dapat dengan mudah memaksa kata sandi, dan ketika mereka adalah satu-satunya hal yang berdiri di antara aktor jahat dan server Anda, Anda pasti akan gugup.
Itu sebabnya autentikasi berbasis kunci RSA jauh lebih baik. Anda dapat mengonfigurasi dan mengamankan server Linux Anda untuk hanya mengizinkan akses dari komputer yang memegang kunci RSA yang telah diterima. Siapa pun akan langsung ditolak. Sebagai manfaat tambahan, Anda dapat membuat kunci tersebut dengan atau tanpa kata sandi, yang sepenuhnya terserah Anda. Kunci yang kuat tanpa kata sandi baik-baik saja dalam banyak kasus.
Jika Anda juga menggunakan perangkat Linux di rumah, Anda mendapatkan keuntungan tambahan berupa kenyamanan. Katakanlah Anda ingin mengatur SSH X-forwarding dari workstation Linux Anda ke laptop Anda. Apakah Anda benar -benar ingin memasukkan kata sandi setiap kali Anda menjalankan program jarak jauh? Siapkan kunci SSH, dan Anda tidak perlu melakukannya.
Instal Paket
Ada beberapa paket yang Anda butuhkan. Anda mungkin sudah memiliki beberapa di antaranya, tetapi ada baiknya untuk memeriksanya. Paket-paketnya sama di server dan klien. Namun, ada juga peluang bagus bahwa kedua mesin adalah server dan klien satu sama lain (situasi rumah), jadi Anda mungkin ingin memastikan bahwa Anda telah menginstal paket-paket ini.
Metapackage OpenSSH tidak diinstal secara default pada sistem Debian atau Ubuntu. Jika Anda belum menginstalnya, Anda dapat melakukannya dengan menjalankan perintah berikut:
sudo tepat Install ssh
Hasilkan Kunci SSH Anda di Linux
Sangat mudah untuk membuat kunci SSH Anda di Linux. Beri tahu OpenSSH bahwa Anda perlu membuat kunci. Ini juga merupakan ide bagus untuk menentukan jumlah bit dengan flag -b dan tipe dengan -t . Kunci 4096 bit adalah yang terbaik, karena menyediakan enkripsi yang lebih kuat.
ssh-keygen -t ed25519
Pertama, utilitas akan menanyakan di mana Anda ingin menyimpan kunci. Tekan saja Enter untuk direktori default. Saat meminta kata sandi, biarkan kosong untuk kunci tanpa kata sandi dan autentikasi tanpa kata sandi. Jika Anda ingin menggunakan kata sandi untuk kunci Anda, masukkan di sini.
Komputer Anda akan membutuhkan beberapa detik untuk menghasilkan kunci Anda. Setelah selesai, itu akan mencetak representasi seni ASCII dari kunci Anda di terminal.
Mengirim Kunci Anda ke Remote Linux Host
Untuk menggunakan kunci Anda, Anda harus mengirimkannya ke server jauh Anda. OpenSSH memiliki utilitas bawaan lain untuk itu juga. Beri tahu di mana kunci Anda dan pengguna mana di server yang akan dikaitkan dengannya.
ssh-copy-id -i ~ / .ssh / id_ed25519.pub nama pengguna @ ip_remote_host
Ganti ip_remote_host dengan alamat IP sebenarnya dari host jarak jauh, yang akan Anda kelola melalui SSH. Ganti nama pengguna dengan nama pengguna sebenarnya di host jarak jauh.
Anda harus menggunakan opsi -i untuk menentukan file identitas yang berisi kunci publik Anda. Jika Anda mencoba menggunakan kunci SSH tanpa opsi ini, Anda mungkin mendapatkan kesalahan.
Menguji Koneksi SSH Anda di Linux
Dengan kunci SSH Anda di server jarak jauh, Anda sekarang dapat menguji apakah koneksi Anda berfungsi dengan baik.
Masuk dengan perintah berikut:
nama pengguna ssh @ ip_remote_host
Host jarak jauh akan memasukkan Anda tanpa meminta kata sandi akun pengguna.
Namun, jika Anda melakukan kesalahan selama proses tersebut, daemon SSH akan secara otomatis kembali ke autentikasi kata sandi untuk akun pengguna Anda. Ini memungkinkan Anda untuk tetap mengakses server jarak jauh meskipun Anda memiliki kunci RSA yang tidak berfungsi.
Mengonfigurasi SSH untuk Memblokir Kata Sandi
Untuk keamanan terbaik, Anda perlu menonaktifkan login kata sandi SSH di server Linux Anda. Mirip dengan mengaktifkan autentikasi dua faktor di SSH, ini mencegah siapa pun untuk memaksa masuk ke server Anda.
Penting untuk memastikan bahwa Anda dapat masuk dengan aman menggunakan kunci SSH Anda sebelum melakukan ini, karena Anda dapat mengunci diri sendiri dari server jarak jauh jika Anda memiliki kunci yang tidak berfungsi.
Anda dapat menemukan file konfigurasi untuk daemon SSH Anda di “/etc/ssh/sshd_config.†Buka file di server menggunakan sudo dan editor teks pilihan Anda. Misalnya, buka file ini menggunakan nano dengan menjalankan perintah berikut:
sudo nano / etc / ssh / sshd_config
Temukan baris di bawah ini dengan menekan Ctrl + W dan edit agar terlihat seperti contoh. Batalkan komentar pada kedua entri dan ubah nilainya menjadi no .
PasswordAuthentication tidak ada PermitKosongPasswords no
PasswordAuthentication menentukan apakah akan menggunakan otentikasi kata sandi. Kami menetapkan ini ke “tidak” karena kami hanya ingin menggunakan kunci SSH.
PermitEmptyPasswords menentukan apakah server mengizinkan login dengan kata sandi kosong. Anda tidak boleh mengizinkan ini, jadi kami menyetelnya ke “tidak”.
Selanjutnya, cari baris “UsePAM†dan ubah ke “no.†Ini akan mencegah daemon menggunakan metode autentikasi apa pun (kata sandi, Kerberos, dll.) selain kunci SSH.
Gunakan nomor PAM
Simpan file dengan menekan Ctrl + O , lalu Ctrl + X dan muat ulang server SSH.
sudo systemctl restart ssh
Sekarang setelah Anda berhasil mengonfigurasi server Anda untuk hanya menggunakan kunci SSH untuk autentikasi, siapa pun yang mencoba masuk tanpa kunci RSA yang valid akan langsung ditolak.
Pertanyaan yang Sering Diajukan
Saya mendapatkan “Koneksi ditolak” ketika saya mengirim kunci SSH ke server Linux saya. Bagaimana cara memperbaikinya?
Pastikan server SSH berjalan di host jarak jauh. Anda dapat memeriksanya dengan menjalankan sudo systemctl status ssh . Jika layanan tidak berjalan, Anda dapat memulainya dengan perintah ini: sudo systemctl start ssh .
Jika firewall berjalan di server, pastikan port 22 terbuka. Anda dapat melakukannya dengan menjalankan sudo ufw status . Jika SSH tidak terdaftar, Anda dapat mengaktifkannya dengan menjalankan perintah ini: sudo ufw allow ssh .
Saya mendapatkan kesalahan “Izin ditolak (publickey)” saat mencoba masuk. Apa yang harus saya lakukan?
Kesalahan ini berarti Anda telah mengonfigurasi server Anda untuk menggunakan kunci untuk autentikasi, tetapi Anda masih mencoba masuk dengan kata sandi. Ini bisa disebabkan oleh kunci RSA yang hilang atau pengaturan SSH yang salah. Pastikan Anda telah menyalin kunci publik Anda ke server dengan benar dan Anda menentukan kunci publik yang benar saat terhubung.
Saya mendapatkan kesalahan “Verifikasi kunci host gagal” saat mencoba menyambung. Bagaimana cara memperbaikinya?
Kesalahan ini berarti kunci host server SSH telah berubah. Itu bisa terjadi jika server telah diinstal ulang. Anda dapat membuat ulang kunci publik baru dan menyalinnya ke host jarak jauh. Ulangi langkah-langkah dalam artikel ini untuk membuat ulang dan menambahkan kunci baru ke server.
Apakah mungkin menggunakan beberapa kunci SSH pada server Linux jarak jauh yang sama?
Ya. Anda dapat menggunakan opsi -f di OpenSSH untuk menentukan kunci persis yang ingin Anda gunakan untuk terhubung ke server jarak jauh. Misalnya, menjalankan ssh -f ~/.ssh/id_rsa_2 username@remote_ip_address akan menghubungkan Anda ke server jarak jauh menggunakan kunci “id_rsa_2†alih-alih “id_rsa†default.
Namun, penting untuk diperhatikan bahwa perintah ini hanya akan berfungsi jika server jarak jauh Anda sudah mengenali kunci baru Anda. Anda harus terlebih dahulu menyalinnya ke server jarak jauh menggunakan ssh-copy-id . Mirip dengan langkah-langkah di atas, Anda dapat melakukannya melalui autentikasi kat
a sandi atau kunci RSA.
Saya mendapatkan kesalahan “Izin Ditolak” setiap kali mencoba menyalin kunci SSH ke server saya.
Masalah ini kemungkinan besar disebabkan oleh masalah izin di server jarak jauh Anda. Dalam kebanyakan kasus, utilitas ssh-copy-id harus menyelesaikan masalah akses dengan benar segera setelah terhubung ke server jarak jauh Anda. Namun, ada beberapa kejadian di mana fitur ini rusak dan gagal menyalin “id_rsa” mesin lokal Anda dengan benar.
Untuk memperbaikinya, masuk ke server jarak jauh Anda dan jalankan chmod 700 /home/$USER/.ssh/* && chmod 600 /home/$USER/.ssh . Ini akan mengatur bit izin yang benar untuk folder “.ssh” dan isinya.
Kredit gambar: Hapus percikan. Semua perubahan dan tangkapan layar oleh Ramces Red.