Siapkan login tanpa kata sandi yang aman ke server Ubuntu jarak jauh Anda menggunakan kunci SSH
SSH adalah protokol jaringan klien-server yang aman yang membantu komputer klien untuk terhubung dan berkomunikasi ke server jauh. Koneksi SSH memastikan bahwa perintah yang diketik di terminal dikirim ke server jauh melalui saluran terenkripsi.
Ada dua jenis mekanisme otentikasi yang digunakan untuk terhubung ke server jarak jauh, otentikasi berbasis kata sandi (rentan terhadap serangan Brute-force) dan otentikasi berbasis SSH Keys (yang sangat aman).
Dalam otentikasi berbasis kunci SSH, pasangan kunci dibuat di komputer klien, yang disebut sebagai kunci publik dan kunci pribadi. Salinan kunci publik ini tersedia di server jauh. Ketika klien mengirimkan permintaan koneksi ke server maka server menghasilkan string acak dan mengenkripsinya menggunakan kunci publik. String ini hanya dapat didekripsi menggunakan kunci pribadi yang tersedia di komputer klien. Metode ini memastikan bahwa server hanya dapat diakses oleh klien yang berisi kunci pribadi.
Dalam panduan ini, kita akan melihat cara mengatur Kunci SSH di server Ubuntu 20.04 LTS.
Lihat apakah Anda memiliki Kunci SSH yang ada di komputer Anda
Untuk memeriksa apakah SSH Keypair sudah ada di komputer Anda, ketik perintah ini di terminal Anda.
ls -l ~/.ssh/id_*.pub
Jika perintah di atas kembali tidak ada berkas atau direktori seperti itu
atau tidak ada kecocokan yang ditemukan
, maka itu berarti pasangan Kunci SSH tidak ada.
Jika Anda memiliki pasangan kunci SSH yang ada, Anda dapat menggunakan pasangan kunci yang sama untuk mengakses dua server jarak jauh, atau Anda juga dapat membuat pasangan kunci yang berbeda dengan nama yang berbeda. Mari kita lanjutkan ke langkah berikutnya dan lihat cara membuat kunci SSH untuk kedua kasus.
Membuat Kunci SSH di Komputer Klien
Untuk menghasilkan pasangan kunci SSH baru di komputer Anda ketik perintah seperti yang ditunjukkan di bawah ini.
ssh-keygen
Secara default, kunci SSH adalah 2048 bit. Untuk keamanan yang lebih baik, jika Anda ingin membuat kunci SSH dengan bit yang lebih tinggi, gunakan perintah berikut.
ssh-keygen -b 4096
Jika perintah berhasil dijalankan, maka pesan berikut akan muncul di layar Anda.
menghasilkan pasangan kunci rsa publik/pribadi. Masukkan file untuk menyimpan kunci (/home/harshit/.ssh/id_rsa):
Sekarang jika Anda tidak memiliki pasangan kunci SSH yang ada di komputer Anda, cukup tekan Memasuki
, tetapi jika Anda memiliki kunci SSH yang ada, simpan kunci tersebut dengan nama file yang berbeda seperti yang ditunjukkan di bawah ini.
Masukkan file untuk menyimpan kunci (/home/nama_anda/.ssh/id_rsa): /home/nama_anda/.ssh/id_rsa_xxx
Ganti xxx
di akhir nama file dengan nama yang sesuai, seperti yang ditunjukkan di bawah ini dan tekan Memasuki
.
Masukkan file untuk menyimpan kunci (/home/nama_anda/.ssh/id_rsa): /home/nama_anda/.ssh/id_rsa_client_1
Prompt berikutnya akan meminta Anda untuk memasukkan kata sandi dengan panjang sewenang-wenang, itu akan memastikan keamanan dua tingkat pada perangkat Anda.
Masukkan frasa sandi (kosongkan tanpa frasa sandi): Masukkan frasa sandi yang sama lagi:
Memasukkan frasa sandi ini akan memastikan bahwa meskipun seseorang mendapatkan akses ke kunci pribadi Anda, ia tidak akan dapat mengakses server jarak jauh Anda tanpa frasa sandi ini.
Setelah seluruh proses selesai, pesan berikut muncul di layar Anda.
Kunci SSH telah dibuat di sistem Anda. Sekarang saatnya untuk menyalin kunci publik di server jauh.
Menyalin kunci Publik ke Server Ubuntu Jarak Jauh
Metode termudah dan tercepat untuk menyalin kunci Publik ke server jauh adalah dengan menggunakan ssh-copy-id
kegunaan. Tetapi jika utilitas ini tidak tersedia di mesin Anda karena alasan tertentu, Anda juga dapat menggunakan metode lain yang disediakan di bagian ini.
Menggunakan utilitas ssh-copy-id
Itu ssh-copy-id
utilitas secara default tersedia di mesin Ubuntu Anda yang menyalin kunci publik dari perangkat Anda ke direktori yang sesuai dari mesin Ubuntu jarak jauh Anda.
Untuk menyalin kunci ssh publik cukup ketik perintah di terminal Anda, seperti yang ditunjukkan di bawah ini.
ssh-copy-id username@hostname
Ganti nama pengguna
dan nama host
pada perintah di atas dengan nama pengguna dan nama host server Anda.
Pesan berikut akan muncul di terminal Anda jika Anda terhubung ke host Anda untuk pertama kalinya, ketik Ya
dan tekan Memasuki
.
Keaslian host' 172.105.XX.XX (172.105.XX.XX)' tidak dapat ditentukan. Sidik jari kunci ECDSA adalah xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. Apakah Anda yakin ingin melanjutkan koneksi (ya/tidak)? Ya
Sekarang ssh-copy-id
utilitas akan memindai file dengan nama id_rsa.pub
yang berisi kunci SSH publik. Setelah proses pemindaian selesai, Anda akan diminta memasukkan kata sandi server jarak jauh Anda, seperti yang ditunjukkan di bawah ini. Ketik kata sandi dan tekan Memasuki
.
/usr/bin/ssh-copy-id: INFO: mencoba masuk dengan kunci baru, untuk menyaring semua yang sudah diinstal /usr/bin/ssh-copy-id: INFO: 1 kunci ) tetap harus diinstal -- jika Anda sekarang diminta untuk menginstal kata sandi kunci baru [email protected]:
Setelah kunci ditambahkan, pesan berikut akan muncul di terminal Anda sebagai output.
Jumlah kunci yang ditambahkan: 1 Sekarang coba masuk ke mesin, dengan: "ssh '[email protected]'" dan periksa untuk memastikan bahwa hanya kunci yang Anda inginkan yang ditambahkan.
Jika Anda memiliki beberapa kunci SSH di komputer klien Anda, maka untuk menyalin kunci publik yang sesuai ke komputer jarak jauh Anda, ketik perintah dalam pola yang ditunjukkan di bawah ini.
ssh-copy-id -i id_rsa_xxx.pub nama pengguna@host
Tip
Jangan lupa untuk meletakkan .pub di akhir nama file saat mengetik di terminal.
Menyalin Kunci Publik dengan metode pemipaan
Ketik perintah berikut di terminal jika ssh-copy-id
utilitas tidak tersedia. Perintah ini mungkin tampak sedikit lebih lama tetapi berfungsi dengan baik.
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && sentuh ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Mengganti remote_namapengguna
dan server_ip_address
dengan nama pengguna dan alamat IP Anda.
Jika Anda memiliki beberapa kunci SSH yang tersedia di komputer Anda, maka gantilah id_rsa.pub
dengan file kunci SSH publik pilihan Anda. Sebagai contoh, id_rsa_client_1.pub
.
Ketik kata sandi pengguna jarak jauh saat diminta dan tekan Memasuki
.
kata sandi [email protected]:
Setelah Anda mengetik kata sandi, id_rsa.pub
file akan disalin ke otorisasi_keys
file dari server jauh.
Menyalin Kunci Publik secara manual
Gunakan metode ini ketika Anda tidak memiliki akses ke sistem jarak jauh Anda melalui otentikasi kata sandi.
Buka id_rsa.pub
file menggunakan kucing
perintah di terminal. Anda juga dapat membukanya dari editor teks, tujuannya hanya untuk menyalin konten file.
cat ~/.ssh/id_rsa.pub
Isi file akan terlihat seperti, seperti yang ditunjukkan di bawah ini.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH your_name @ your_PC
Sekarang, login ke server jarak jauh Anda dan tempel konten yang disalin menggunakan perintah yang ditunjukkan di bawah ini. Ganti atas_string
dengan konten yang disalin.
echo atas_string >> ~/.ssh/authorized_keys
Mengonfigurasi beberapa Kunci SSH (Opsional)
Langkah ini untuk orang-orang yang memiliki beberapa SSH Keys setup di komputer klien mereka. Lewati bagian ini jika Anda hanya memiliki satu pengaturan Kunci SSH.
Untuk mengelola beberapa Kunci SSH, sekarang kami akan membuat konfigurasi
file di dalam .ssh
direktori menggunakan perintah yang ditunjukkan di bawah ini.
cd ~/.ssh konfigurasi vim
Jenis Saya
untuk masuk ke mode perintah dan ketik rincian beberapa host, seperti yang ditunjukkan pada contoh berikut:
Hostname server-ubuntu jarak jauh HostName 172.105.XX.XX User root IdentityFile ~/.ssh/id_rsa_client_1 Host remote-ubuntu-server HostName 172.106.XX.XX User root IdentityFile ~/.ssh/id_rsa_client_2
Demikian pula, ketik detail server jarak jauh lainnya dan kuncinya. Setelah proses selesai tekan ESC
dan :wq
untuk menyimpan dan keluar.
Sekarang proses selanjutnya sama untuk memiliki satu atau beberapa Kunci SSH di komputer klien.
Masuk ke server jarak jauh Anda menggunakan kunci SSH
Setelah proses menyalin kunci Publik Anda selesai, masuk ke server jauh Anda dengan mengetikkan perintah seperti yang ditunjukkan di bawah ini.
ssh remote_username@server_ip_address
Jika Anda memberikan frasa sandi saat membuat pasangan kunci, maka Anda akan diminta untuk memasukkannya. Sesi baru akan terbuka setelah proses otentikasi selesai.
Anda sekarang telah berhasil mengonfigurasi otentikasi berbasis kunci SSH di server jauh Anda. Tetapi otentikasi berbasis kata sandi masih aktif di server Anda, ini berarti server Anda yang lebih jauh masih rentan terhadap serangan brute force.
Jadi sekarang kami akan menonaktifkan mekanisme login berbasis kata sandi sepenuhnya dari server jarak jauh kami.
Nonaktifkan Mekanisme Login berbasis kata sandi
Sebelum Anda membuat perubahan apa pun, pastikan bahwa pengguna root atau pengguna yang mendukung sudo untuk akun jarak jauh Anda memiliki akses ke server Anda menggunakan sistem otentikasi berbasis kunci SSH. Langkah ini akan mengunci atau menonaktifkan login berbasis kata sandi sepenuhnya sehingga sangat penting bahwa setidaknya satu hak akses root pengguna memiliki akses ke server melalui kunci SSH.
Masuk ke server Ubuntu jarak jauh Anda dan ketik perintah yang ditunjukkan di bawah ini.
sudo vim /etc/ssh/sshd_config
- tekan
ESC
,/
dan ketik 'PasswordAuthentication' dan tekanmemasuki
. - Sekarang tekan
Saya
dan ubah nilai 'PasswordAuthentication yes' menjadi 'PasswordAuthentication no'. - tekan
ESC
dan ulangi proses di atas untuk menemukan 'ChallengeResponseAuthentication', 'UsePAM', dan ubah nilainya menjaditidak
demikian juga.
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
Setelah semua nilai disetel ke tidak
, tekan ESC
, Tipe :wq
dan pukul memasuki
.
Untuk mengaktifkan semua perubahan, mulai ulang ssh
layanan menggunakan perintah di bawah ini.
sudo systemctl restart ssh
Sekarang buka jendela terminal baru di komputer Anda dan verifikasi bahwa otentikasi Kunci SSH Anda berfungsi dengan baik sebelum menutup sesi saat ini.
Setelah proses verifikasi selesai, tutup semua sesi yang sedang berjalan.
Kami sekarang telah berhasil mengonfigurasi otentikasi berbasis Kunci SSH di server Ubuntu 20.04 kami. Sekarang tidak ada yang bisa masuk ke server Anda menggunakan mekanisme masuk berbasis kata sandi.