GNU/Linux >> Belajar Linux >  >> Linux

Hasilkan Kunci SSH untuk login tanpa kata sandi di Ubuntu

SSH (Secure Shell) adalah protokol jaringan kriptografi yang digunakan untuk membuat koneksi aman antara klien jarak jauh dan server, menggunakan TCP protokol untuk keamanan dan keandalan.

Koneksi berbasis SSH mendukung berbagai metode otentikasi, beberapa di antaranya adalah :

  • Otentikasi berbasis sandi
  • Otentikasi berbasis kunci

Secara default, membuat koneksi SSH baru antara dua mesin akan menggunakan otentikasi berbasis kata sandi. Tetapi jika Anda sering masuk ke server dari klien yang sama, mungkin akan merepotkan dan menjengkelkan untuk mengetik kata sandi setiap kali Anda masuk ke server.

Tutorial ini menyajikan otentikasi alternatif lain untuk masuk ke server jauh, menggunakan kunci publik .

Mari kita lihat bagaimana kita dapat mengatur ini pada mesin klien dan server tertentu yang sering kita gunakan, sehingga kita dapat login secara otomatis dari mesin ini dengan aman!

Periksa Kunci SSH yang ada di Mesin Klien

Bagian pertama berhubungan dengan menghasilkan pasangan kunci privat-publik di klien mesin. Kunci publik kemudian disalin ke server dan digunakan untuk otentikasi.

Sebelum menyetel Kunci SSH apa pun, pastikan tidak ada kunci yang sudah ada untuk kombinasi server-klien ini.

Mari jalankan skrip bash ini untuk memeriksa apakah file tersebut ada (Anda dapat mengetik ini langsung di terminal)

if test -f ~/.ssh/id_*.pub; then
    echo "Found"
else
    echo "Not Found"
fi

Jika Anda mendapatkan “Not Found”, ini berarti tidak ada file seperti itu, dan kami siap membuat kunci baru untuk koneksi ini.

Jika tidak, Anda dapat langsung menggunakan kunci yang ada dan melewati langkah berikutnya. Namun jika Anda tidak ingin menggunakan kunci lama, Anda dapat menghapus kunci lama dan membuat yang baru dengan mengikuti langkah berikutnya.

Buat pasangan kunci SSH baru untuk mesin client-server

Perintah di bawah ini akan menghasilkan 4096 . baru bit kunci SSH berpasangan dengan id Anda (dapat berupa apa saja yang dapat diidentifikasi!) sebagai komentar:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Setelah mengonfigurasi lokasi kunci dan frasa sandi dengan menjalankan perintah ini, sekarang kita akan memiliki kunci baru yang dibuat untuk kita, bersama dengan sidik jari kunci.

Sekarang, mari kita periksa apakah kunci privat-publik benar-benar ada, menggunakan ls .

ls ~/.ssh/id_*

Anda harus mendapatkan output di bawah ini :

/root/.ssh/id_rsa  /root/.ssh/id_rsa.pub

Artinya id_rsa adalah kunci pribadi Anda, dan id_rsa.pub adalah kunci publik Anda.

CATATAN :Tidak pernah bagikan kunci pribadi Anda di seluruh mesin. Inilah sebabnya mengapa Anda memiliki kunci publik. Jadi kita dapat menyalin kunci publik yang sama ke beberapa server ke ssh untuk, sambil mempertahankan keamanan tambahan menggunakan kunci pribadi di mesin lokal Anda.

Salin kunci publik ke Server

Karena kami memiliki pasangan kunci SSH di klien kami, untuk dapat masuk ke server jarak jauh, kami perlu menyalin kunci publik di sana.

Kita bisa menggunakan scp untuk menyalin file ke server kami, tetapi ada alternatif yang lebih baik untuk ssh kunci, menggunakan ssh-copy-id .

Anda dapat menginstal ssh-copy-id menggunakan manajer paket Anda jika tidak tersedia.

ssh-copy-id server_username@server_ip

Setelah memasukkan kata sandi nama pengguna server, sekarang kita akan diautentikasi untuk masuk ke server menggunakan kunci publik.

Outputnya akan seperti ini:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/client_user/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
SERVER_USER@SERVER_IP's password: 


Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'SERVER_USER@SERVER_IP'"
and check to make sure that only the key(s) you wanted were added.

Artinya kita bisa menggunakan ssh ke mesin khusus ini dari klien kami dengan autentikasi berbasis kunci ekstra!

Untuk mengujinya, coba ssh ing ke server sekarang!

ssh server_user@server_ip

Men-debug Potensi Masalah

Tetapi beberapa dari Anda mungkin masih mendapatkan prompt kata sandi untuk muncul, bersama dengan frasa sandi berbasis kunci! Apa yang terjadi?

Alasan potensial dirinci di sini. Sepertinya kami mungkin tidak memiliki izin yang tepat pada ~/.ssh kami direktori di server jarak jauh . Isi HOME direktori ~ , ~/.ssh direktori, dan ~/.ssh/authorized_keys file harus dapat ditulis hanya oleh kami. Jika tidak, ia merasakan bahwa pengguna lain dapat memperoleh akses, dan itulah sebabnya kata sandi juga diminta.

Mari kita periksa izin direktori home kita terlebih dahulu.

Karena kami hanya dapat menulis, kami tidak perlu mengubah izin untuk direktori ini. Demikian pula, lihat mode dan ubah mode menggunakan chmod .

Mari kita ubah hak akses ke file dan direktori ini menggunakan chmod -R ~/.ssh 700 secara rekursif.

Sekarang, uji untuk melihat apakah ini berhasil.

Potensi Masalah Debug – Bagian 2

Jika Anda masih tidak dapat menjalankannya, utas ini menyebutkan bahwa beberapa opsi dalam file konfigurasi ssh mungkin dinonaktifkan.

Periksa /etc/ssh/sshd_config di server untuk memastikan bahwa RSAAuthentication , PubkeyAuthentication dan UsePAM opsi tidak dinonaktifkan.

Juga, pastikan Anda secara eksplisit menetapkan PasswordAuthentication no di konfigurasi, untuk menonaktifkan Otentikasi Berbasis Kata Sandi untuk pengguna kami.

Seperti yang Anda lihat, ini memang terjadi pada saya! PubKeyAuthentication juga dinonaktifkan, dan karenanya meminta saya untuk memasukkan kata sandi, karena sesi tidak menggunakan ini sebagai mode otentikasi utama!

Saya membatalkan komentar pada baris ini, dan memulai kembali ssh untuk menerapkan perubahan.

sudo systemctl restart ssh

Sekarang, ini membuat otentikasi tanpa kata sandi akhirnya berfungsi untuk saya! Semoga, Anda juga telah menemukan solusi saat ini.

Kami akhirnya mengonfigurasi ssh untuk bekerja tanpa kata sandi!

Kesimpulan

Dalam tutorial ini, kami menunjukkan kepada Anda bagaimana Anda dapat mengatur ssh metode otentikasi berbasis kunci publik, dan login ke server tanpa kata sandi!


Linux
  1. Cara Mengatur Kunci SSH

  2. Cara Mengatur kunci SSH untuk login ssh "tanpa kata sandi" di Linux

  3. Cara Mengatur kunci SSH untuk Login SSH “tanpa kata sandi” di CentOS/RHEL

  1. 3 cara saya mengonfigurasi SSH untuk privasi

  2. Cara Setup SSH keys untuk SSH "public/private key" Login Di Linux

  3. Hasilkan pasangan SSH dengan AES-256-CBC

  1. Cara Menghasilkan Kunci SSH di Ubuntu 18.04

  2. Cara Mengatur Kunci SSH di Ubuntu 16.04

  3. Cara Mengatur Kunci SSH di Ubuntu 18.04