GNU/Linux >> Belajar Linux >  >> Linux

Cara kerja SSH Tanpa Kata Sandi di Linux / UNIX

SSH adalah protokol untuk mentransfer data secara aman antara mesin yang berbeda. Protokol SSH menggunakan kriptografi kunci publik untuk memungkinkan klien mengotentikasi server dan jika perlu mengizinkan server mengotentikasi klien tanpa mengirim kata sandi bolak-balik.

Kriptografi Kunci Publik menggunakan pasangan kunci publik-swasta. Kunci pribadi dirahasiakan dan tidak pernah ditransfer melalui jaringan. Kunci publik dapat didistribusikan ke semua rekan. Pesan yang dienkripsi menggunakan kunci publik hanya dapat didekripsi dengan kunci privat.

Pada waktu koneksi SSH, klien menerima kunci publik server, dan memverifikasi apakah ini cocok dengan kunci publik yang disimpan di $HOME/.ssh/known_hosts . Jika tes ini berhasil, dan server tidak memiliki kunci publik klien, kata sandi diperlukan. Jika tidak, server mengirimkan pesan yang dienkripsi dengan kunci publik klien dan jika klien berhasil mendekripsi pesan tersebut, menggunakan kunci pribadinya, koneksi akan dibuat.

Ada dua versi protokol SSH, versi 1 dan 2. Enkripsi terkait dengan versi protokol. Versi 1 mengalami kerentanan keamanan, bila memungkinkan, versi 2 harus digunakan. Sebagian besar server SSH menggunakan protokol versi 2 karena keterbatasan versi 1.

Ada 2 algoritme untuk enkripsi pasangan kunci publik-swasta, RSA dan DSA .

Penyiapan Klien

Protokol Ketik Baris Perintah
Versi 1 RSA1 -t rsa1
Versi 2 RSA -t rsa
Versi 2 DSA -t dsa

Setelah menentukan tipe identitas yang Anda inginkan/butuhkan, langkah pertama adalah membuat pasangan kunci publik-swasta, dan menyalin bagian publik ke tempat yang sesuai di sisi server. Di direktori home pengguna, pada mesin klien, jalankan (Anda harus memiliki direktori $HOME/.ssh, jika tidak membuatnya):

# ssh-keygen -t dsa -f ~/.ssh/id_dsa 
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:Qmd9iBOzx02n4DvDiBwRoGbGGC12X9i41QtbBxznHZc root@geeklab
The key's randomart image is:
+---[DSA 1024]----+
|..  ..*.=o+......|
|.=.o o * %o*.ooE |
|o.B . * X O.+.   |
| +   = * * o     |
|      + S =      |
|       .   o     |
|                 |
|                 |
|                 |
+----[SHA256]-----+

Di sini,
-t – digunakan untuk jenis enkripsi.
-f – tempat menyimpan pasangan kunci publik/pribadi. Dalam hal ini, direktori .ssh di beranda pengguna.

Frasa sandi akan ditanyakan setelah Anda menjalankan perintah di atas. Biarkan bagian ini kosong, cukup tekan [enter] jika Anda tidak ingin mengetik frasa sandi ini di setiap koneksi. Atau, seseorang dapat mengatur ssh-agent untuk menangani frasa sandi.

Perintah di atas membuat dua file di ~/.ssh:

# ls -lrt ~/.ssh/id_dsa*
-rw-r--r--. 1 root root 602 Apr 12 14:45 /root/.ssh/id_dsa.pub
-rw-------. 1 root root 668 Apr 12 14:45 /root/.ssh/id_dsa

Penyiapan Server

File id_dsa.pub berisi kunci publik klien, yang perlu ditambahkan ke file $HOME/.ssh/authorized_keys di server:

1. Salin file id_dsa.pub ke server:

client$ scp ~/.ssh/id_dsa.pub user@server:~/.ssh/id_dsa.pub

Tentu saja, kali ini Anda harus memasukkan kata sandi untuk pengguna tersebut.

2. Sekarang, masuk ke mesin server dan buka direktori .ssh di sisi server

client$ ssh user@server
server$ cd .ssh

3. Sekarang, tambahkan kunci publik klien ke daftar kunci publik yang diketahui di server:

server$ cat id_dsa.pub >> authorized_keys
server$ chmod 640 authorized_keys
server$ rm id_dsa.pub
server$ exit

itu saja.

Pengujian

Untuk menguji apakah ssh tanpa kata sandi berfungsi, gunakan sintaks di bawah ini:

$ ssh -l [user] [server]
Last login: Tue Apr 12 15:20:07 2007 from 192.168.0.100

atau sebagai alternatif

$ ssh [user]@[server]
Last login: Tue Oct 12 15:20:07 2007 from 192.168.0.100

Jika sistem tidak menanyakan kata sandi Anda, semuanya berfungsi dengan baik.

Peringatan

Pastikan Anda merahasiakan kunci pribadi Anda (~/.ssh/id_dsa)! Meskipun aman untuk memberikan kunci publik Anda (~/.ssh/id_dsa.pub) kepada dunia, Anda harus sangat berhati-hati agar tidak ada orang lain yang dapat membaca kunci pribadi Anda (~/.ssh/id_dsa). Semua orang yang memiliki akses ke kunci pribadi dapat masuk ke mesin mana pun tempat kunci publik yang cocok dipasang.


Linux
  1. Cara Mengubah Port SSH Di Linux

  2. Cara Mengonfigurasi Otentikasi Berbasis Kunci SSH Di Linux

  3. Cara Setup Rsync dengan SSH di UNIX/Linux (rsync tanpa password)

  1. Cara Mengatur Kunci SSH

  2. Cara mengatur login SSH tanpa kata sandi di Linux

  3. Cara Menggunakan Perintah ssh-keygen untuk mengkonfigurasi ssh tanpa kata sandi

  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Cara Menghasilkan Kunci SSH di Windows 10

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