Cara Menambahkan Kunci SSH di Ubuntu 20.04

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.

ssh-keygen -b 4096 Setelah seluruh proses pembuatan kunci SSH 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 tekan memasuki.
  • 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 menjadi tidak 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.