GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Kerja SSH?

Pendahuluan

Transmisi data antar perangkat dalam suatu jaringan perlu diatur agar perangkat dapat berkomunikasi dengan baik. Transmisi dilakukan dengan seperangkat aturan yang dikenal sebagai protokol jaringan.

Protokol jaringan awal seperti Telnet dan rsh tidak memberikan perlindungan yang cukup terhadap serangan cyber berbahaya. Kebutuhan akan metode komunikasi jaringan yang lebih aman menginspirasi pembuatan protokol SSH.

Dalam tutorial ini, kita akan berbicara tentang apa itu SSH, mengapa digunakan, dan bagaimana cara kerjanya.

Apa itu SSH?

SSH (singkatan dari Secure Shell) adalah protokol jaringan yang menyediakan cara aman bagi dua komputer untuk terhubung dari jarak jauh. SSH menggunakan enkripsi untuk memastikan bahwa peretas tidak dapat menafsirkan lalu lintas antara dua perangkat yang terhubung.

SSH terdiri dari tiga lapisan berbeda:

  • Lapisan transport membangun komunikasi yang aman dan terjamin antara klien dan server selama dan setelah otentikasi. Ini mengawasi enkripsi data, dekripsi, dan perlindungan integritas. Selain itu, ini membantu mempercepat pertukaran data dengan menyediakan kompresi dan caching data.
  • Lapisan otentikasi mengkomunikasikan metode otentikasi yang didukung ke klien. Itu juga melakukan seluruh proses otentikasi pengguna.
  • Lapisan koneksi mengelola komunikasi antara mesin setelah otentikasi berhasil. Ini menangani pembukaan dan penutupan saluran komunikasi dan memungkinkan beberapa saluran untuk beberapa sesi.

Untuk Apa SSH Digunakan?

SSH menyediakan lapisan keamanan untuk transfer informasi antar mesin. Beberapa kasus penggunaan penting untuk SSH adalah:

  • Akses jarak jauh – SSH memastikan koneksi jarak jauh terenkripsi untuk pengguna dan proses.
  • Transfer file – SFTP, protokol transfer file aman yang dikelola oleh SSH, menyediakan cara aman untuk memanipulasi file melalui jaringan.
  • Penerusan X11 – Pengguna dapat menjalankan aplikasi X yang dihosting server dari mesin klien mereka.
  • Penerusan Port – Dengan memetakan port klien ke port jarak jauh server, SSH membantu mengamankan protokol jaringan lain, seperti TCP/IP.
  • Penerowongan – Teknik enkapsulasi ini menyediakan transfer data yang aman. Tunneling berguna untuk mengakses materi online yang sensitif terhadap bisnis dari jaringan yang tidak aman, karena dapat bertindak sebagai alternatif VPN yang praktis.
  • Pengelolaan jaringan – Protokol SSH mengelola infrastruktur jaringan dan bagian lain dari sistem.

Bagaimana Cara Kerja SSH?

SSH adalah protokol berbasis client-server. Ini berarti protokol memungkinkan perangkat yang meminta informasi atau layanan (klien) untuk terhubung ke perangkat lain (server).

Saat klien terhubung ke server melalui SSH, mesin dapat dikontrol seperti komputer lokal.

Server memiliki port TCP yang ditunjuk untuk memonitor jaringan, menunggu klien untuk menginisialisasi koneksi. Sebelum klien terhubung dan mulai mengeluarkan perintah SSH, klien harus melewati proses otentikasi.

Membuat Koneksi SSH

Jalankan perintah berikut pada mesin klien untuk memulai koneksi SSH:

ssh [username]@[server_ip_or_hostname]

Saat server menerima permintaan, negosiasi enkripsi sesi dimulai.

Negosiasi Enkripsi Sesi

Setelah menerima permintaan koneksi, server mengirim klien satu set protokol enkripsi yang didukung. Server menggunakan kunci publik sebagai metode otentikasi.

Klien membandingkan protokol dengan setnya sendiri. Jika ada protokol yang cocok, mesin setuju untuk menggunakannya untuk membuat koneksi.

Klien membandingkan kunci publik server dengan kunci pribadi tersimpan yang disimpan dalam sistemnya pada upaya koneksi pertama. Jika kunci cocok, klien dan server setuju untuk menggunakan enkripsi simetris untuk berkomunikasi selama sesi SSH. Untuk tujuan ini, mereka berkomunikasi menggunakan proses terenkripsi asimetris yang menggunakan algoritme pertukaran kunci Diffie-Hellman (DH).

Algoritme DH memungkinkan mesin untuk bekerja bersama dan membuat kunci kriptografik dengan aman melalui jaringan publik. Untuk menghasilkan kunci, mesin melakukan langkah-langkah berikut:

  • Mesin menyetujui dua angka :modulus dan bilangan dasar. Untuk mencegah dekripsi kunci brute force, modulus yang dipilih adalah bilangan prima minimal 600 digit.
  • Mesin secara terpisah memilih satu nomor dan terapkan ke persamaan yang melibatkan dua bilangan publik.
  • Server dan klien bertukar nilai yang dihitung .
  • Setiap mesin sekarang melakukan perhitungan menggunakan hasil yang diterima dari yang lain.

Dengan melakukan langkah-langkah di atas, kedua mesin menghitung nilai yang sama, kunci rahasia mereka. Terakhir, server kemudian mencoba mengautentikasi pengguna yang meminta akses.

Otentikasi Pengguna

Dua metode otentikasi pengguna SSH yang paling umum digunakan adalah kata sandi dan kunci SSH. Klien dengan aman mengirim kata sandi terenkripsi ke server. Namun, sandi adalah metode autentikasi yang berisiko karena kekuatannya bergantung pada kesadaran pengguna tentang apa yang membuat sandi kuat.

Pasangan kunci publik-swasta SSH yang dienkripsi secara asimetris adalah pilihan yang lebih baik. Setelah klien mendekripsi pesan, server memberikan klien akses ke sistem.

Untuk menghasilkan pasangan kunci SSH, ketik ssh-keygen di terminal. Akibatnya, sistem menghasilkan dan menyimpan kunci.

Untuk informasi lebih lanjut tentang proses ini, lihat Cara Membuat Kunci SSH di Ubuntu (prosesnya pada dasarnya sama di semua distro Linux dan Mac OS).

Menjelaskan Teknologi Enkripsi SSH

SSH menggunakan tiga jenis enkripsi data selama komunikasi antar mesin. Ini adalah:

  • Enkripsi simetris
  • Enkripsi asimetris
  • Hashing.

Enkripsi Simetris

Enkripsi simetris menghasilkan satu kunci yang dipertukarkan oleh dua mesin. Kemudian, mesin menggunakan kunci untuk enkripsi dan dekripsi. Metode ini cepat, tidak memakan banyak sumber daya, dan SSH menggunakannya untuk setiap sesi.

Setiap kali klien dan server menegosiasikan algoritme mana yang akan digunakan untuk sesi SSH, mereka selalu memilih algoritme pertama pada daftar klien yang didukung server.

Enkripsi Asimetris

Data dienkripsi secara asimetris ketika mesin menggunakan dua kunci yang berbeda tetapi terkait secara matematis, publik dan pribadi, untuk melakukan enkripsi. Mesin klien yang berpartisipasi dalam menyiapkan enkripsi dapat mendekripsi informasi menggunakan kunci pribadi.

SSH menggunakan kunci asimetris temporal untuk bertukar kunci simetris, seperti selama proses otentikasi pengguna.

Hashing

SSH menggunakan hashing untuk memvalidasi jika paket data berasal dari sumber asalnya. Algoritma hashing yang digunakan untuk menghasilkan hash di SSH adalah Message Authentication Code (MAC) dan Hashed Message Authentication Code (HMAC).

Algoritma hashing menggunakan paket data untuk membuat string hash yang unik. Mesin pengirim paket selalu mengirimkan paket bersama dengan nilai hash.

Mesin penerima mengetahui algoritma yang digunakan untuk membuat hash dan dapat menerapkannya ke data. Tujuannya adalah untuk melihat apakah nilai hash yang dihitung akan sama. Jika nilai hash yang diperoleh berbeda dari hash pengirim, data akan rusak selama transfer.


Ubuntu
  1. Bagaimana Cara Kerja Awk ‘!a[$0]++’?

  2. Bagaimana Cara Kerja Sticky Bit?

  3. Ssh – Bagaimana Tcp-keepalive Bekerja Di Ssh?

  1. Bagaimana rm bekerja? Apa yang rm lakukan?

  2. Bagaimana cara kerja perintah ps?

  3. Bagaimana Kerberos bekerja dengan SSH?

  1. Apa itu NGINX? Bagaimana cara kerjanya?

  2. Bagaimana Sanlock Bekerja di Virtualisasi RedHat

  3. Bagaimana sebenarnya sig_atomic_t bekerja?