Apa itu SSH (Protokol shell aman)?

SSH adalah singkatan dari Secure Shell yang merupakan protokol keamanan berdasarkan lapisan aplikasi. Kita menggunakan SSH untuk mengakses server jarak jauh dengan aman dan Desktop untuk menjalankan berbagai perintah. Singkatnya, kita dapat mengontrol sistem lengkap dari jarak jauh, jika kita memiliki informasi login dan akses server SSH. Karena Secure Shell (SSH) adalah protokol jaringan kriptografi yang dirancang untuk menggantikan Telnet dan mengakses sistem jarak jauh bahkan pada shell jarak jauh yang tidak aman dengan mengenkripsi data sebelum dikirim.

Port 22 digunakan sebagai port standar untuk SSH. Ini terutama dirancang untuk sistem seperti UNIX dan juga dapat bekerja pada sistem Windows dengan menginstal OpenSSH.

Layanan web tradisional seperti FTP, pop, dan telnet pada dasarnya tidak aman karena mereka mengirimkan password dan data dalam teks yang jelas melalui jaringan, sehingga memudahkan orang dengan motif tersembunyi untuk mencegat password dan data tersebut.

Selain itu, metode verifikasi keamanan dari program service ini memiliki kelemahan, yaitu rentan terhadap serangan man-in-the-middle. Metode serangan yang disebut “perantara” berarti bahwa “perantara” berpura-pura menjadi server nyata untuk menerima data yang Anda berikan ke server, dan kemudian berpura-pura bahwa Anda meneruskan data ke server yang sebenarnya. Setelah transfer data antara server dan Anda telah diubah oleh “orang tengah”, akan ada masalah serius.

Dengan menggunakan SSH, Anda dapat mengenkripsi semua data yang dikirimkan, sehingga serangan “man in the middle” tidak mungkin terjadi, dan juga dapat mencegah DNS spoofing dan IP spoofing. Dengan menggunakan SSH, keuntungan tambahannya adalah transmisi data dikompresi, sehingga Anda dapat mempercepat kecepatan transfer. SSH memiliki banyak fungsi, dapat menggantikan Telnet, dan dapat menyediakan “saluran” yang aman untuk FTP, PoP, dan bahkan PPP

SSH terutama terdiri dari tiga bagian:

Protokol lapisan transport [SSH-TRANS]

Menyediakan otentikasi server, kerahasiaan dan integritas. Selain itu, terkadang memberikan kompresi. SSH-TRANS biasanya berjalan pada koneksi TCP/IP dan juga dapat digunakan pada aliran data andal lainnya. SSH-TRANS menyediakan teknologi enkripsi yang kuat, otentikasi host password dan perlindungan integritas. Otentikasi dalam protokol ini didasarkan pada host dan protokol tidak melakukan otentikasi user. Protokol otentikasi user lapisan yang lebih tinggi dapat dirancang untuk berada di atas protokol ini.

Protokol Otentikasi Pengguna [SSH-USERAUTH]

Digunakan untuk memberikan otentikasi user client ke server. Ini berjalan di protokol lapisan transport SSH-TRANS di atas. Ketika SSH-USERAUTH dimulai, ia menerima pengidentifikasi sesi dari protokol lapisan bawah (dari hash pertukaran H di pertukaran kunci pertama). Pengidentifikasi sesi secara unik mengidentifikasi sesi ini dan berlaku untuk token untuk membuktikan kepemilikan kunci pribadi. SSH-USERAUTH juga perlu mengetahui apakah protokol lapisan bawah memberikan perlindungan privasi. Protokol koneksi [SSH-CONNECT]

Ini berjalan pada protokol otentikasi user untuk menyediakan sesi login interaktif, eksekusi perintah jarak jauh, meneruskan koneksi TCP/IP, dan meneruskan koneksi X11.

Tingkat verifikasi keamanan SSH sisi client

Dari sisi client, SSH menyediakan dua tingkat verifikasi keamanan.

Tingkat pertama (verifikasi keamanan berbasis password)

Selama Anda mengetahui akun dan password Anda, Anda dapat masuk ke host jarak jauh. Semua data yang dikirimkan akan dienkripsi, tetapi tidak dapat menjamin bahwa Anda terhubung ke server yang ingin Anda hubungkan. Mungkin ada server lain yang menyamar sebagai server nyata, yaitu diserang oleh “perantara”.

Tingkat kedua (verifikasi keamanan berbasis kunci)

Anda harus bergantung pada kuncinya, yang berarti Anda harus membuat sepasang kunci untuk diri Anda sendiri dan meletakkan kunci publik di server yang perlu Anda akses. Jika Anda terhubung ke server SSH, perangkat lunak client akan membuat permintaan ke server untuk verifikasi keamanan dengan kunci Anda. Setelah server menerima permintaan, cari kunci publik Anda di direktori home Anda di server dan bandingkan dengan kunci publik yang Anda kirim. Jika kedua kunci cocok, server mengenkripsi “tantangan” dengan kunci publik dan mengirimkannya ke perangkat lunak client. Setelah perangkat lunak client menerima “tantangan”, itu dapat mendekripsi dengan kunci pribadi Anda dan mengirimkannya ke server.

Dengan cara ini, Anda harus mengetahui password kunci Anda. Namun, tingkat kedua tidak memerlukan password untuk dikirim melalui jaringan dibandingkan dengan tingkat pertama.

Tingkat kedua tidak hanya mengenkripsi semua data yang dikirimkan, tetapi serangan “orang tengah” juga tidak mungkin (karena dia tidak memiliki kunci pribadi Anda). Tetapi seluruh proses login mungkin memakan waktu beberapa detik.

SSH terdiri dari perangkat lunak client dan server.

Ada dua versi SSH yang tidak kompatibel: 1.x dan 2.x. Client yang menggunakan SSH 2.x tidak dapat terhubung ke server SSH 1.x. OpenSSH 2.x mendukung SSH 1.x dan 2.x.

Server adalah daemon yang berjalan di latar belakang dan merespon permintaan koneksi dari client. Server umumnya merupakan proses SSHD yang menyediakan penanganan koneksi jarak jauh, biasanya termasuk otentikasi kunci publik, pertukaran kunci, enkripsi kunci simetris, dan koneksi tidak aman.

Client menyertakan program ssh dan aplikasi lain seperti SCP (salinan jarak jauh), slogin (login jarak jauh), sftp (transfer file aman).

Mekanisme kerja mereka kira-kira bahwa client lokal mengirimkan permintaan koneksi ke server jauh. Server memeriksa paket dan alamat IP yang diminta dan kemudian mengirimkan kunci ke client SSH, dan kemudian mengirimkan kunci kembali ke server. Koneksi telah terjalin sejak saat itu. Ada beberapa perbedaan protokol koneksi antara SSH 1.x dan SSH 2.x.

Setelah koneksi lapisan transport aman dibuat, client mengirimkan permintaan service. Ketika otentikasi user selesai, permintaan service kedua dikirim. Ini memungkinkan protokol yang baru ditentukan untuk hidup berdampingan dengan protokol di atas. Protokol koneksi menyediakan berbagai saluran untuk digunakan, dengan metode standar untuk membuat shell sesi interaktif yang aman dan penerusan (“teknologi tunnelling”) port TCP/IP berpemilik dan koneksi X11.

SSH dirancang untuk bekerja sendiri tanpa memanfaatkan server super ( inetd ), meskipun proses SSH dapat dijalankan melalui tcpd di inetd, tetapi ini sama sekali tidak diperlukan. Setelah memulai server SSH, sshd berjalan dan mendengarkan pada port default 22 (Anda dapat menggunakan # ps -waux | grep sshd untuk melihat apakah sshd berjalan dengan benar). Jika bukan SSH yang dimulai oleh inetd, maka SSH akan Selalu menunggu permintaan koneksi. Saat permintaan masuk, daemon SSH akan menghasilkan proses anak, yang akan melakukan pemrosesan koneksi

Juga, SSH dirancang untuk menggantikan versi Berkeley dari set perintah r; itu juga mewarisi sintaks yang serupa. Akibatnya, user tidak melihat perbedaan antara menggunakan SSH dan set perintah r. Dengan itu, Anda dapat melakukan beberapa hal keren. Dengan menggunakan SSH, Anda tidak perlu khawatir saat mengirim pesan melalui jaringan yang tidak aman. Anda juga dapat menggunakan mode saluran Telnet dan POP, dapat digunakan oleh SSH PPP untuk membuat jaringan pribadi virtual (Virtual Private Network, saluran VPN). SSH juga mendukung beberapa metode otentikasi lainnya, seperti Kerberos dan kartu ID aman. Namun, karena hak cipta dan algoritma enkripsi, diharapkan semakin banyak orang akan menggunakan SSH daripada Telnet atau POP3 di masa depan.

Anda mungkin ingin melihat:

  • Di Ubuntu, aktifkan ssh untuk menghubungkan dan mengelola server dari jarak jauh
  • Cara Mengaktifkan Client OpenSSH Windows 10 Asli
  • Instal server Owncloud di Windows 10 (WSL)
  • Cara Menginstal Ansible di Windows 10