Hemat waktu masuk ke GitHub melalui SSH dengan menggunakan autentikasi tanpa kata sandi.
Otentikasi dengan GitHub biasanya melibatkan penggunaan token akses atau kata sandi. Namun, metode ini bisa merepotkan dan tidak aman, terutama saat mengakses GitHub dari banyak perangkat.
GitHub menyediakan opsi untuk menggunakan Secure Shell (SSH) untuk autentikasi. SSH menghadirkan protokol jaringan yang aman untuk akses mesin jarak jauh. Fitur ini terbukti sangat berharga dalam situasi yang menuntut otomatisasi atau akses jarak jauh yang sering.
Memahami Otentikasi SSH
Otentikasi dengan SSH melibatkan penggunaan kunci kriptografi untuk membuat koneksi aman (terowongan) antara klien (mesin lokal) dan server (GitHub).
Saat menggunakan SSH untuk GitHub, pengguna membuat sepasang kunci SSH—kunci publik dan kunci privat. Kunci publik diunggah ke akun GitHub pengguna, sedangkan kunci privat tetap tersimpan dengan aman di mesin lokal pengguna.
Prosesnya bisa disamakan dengan konsep gembok dan anak kunci. Kunci publik (kunci) dimaksudkan untuk dibagikan secara terbuka dan disimpan dengan aman di sisi server. Ini berfungsi sebagai pendamping kunci privat, memungkinkan server untuk memverifikasi identitas mesin lokal Anda. Sebaliknya, kunci privat (kunci) bertindak sebagai pengidentifikasi unik yang disimpan secara eksklusif di mesin lokal Anda, memungkinkan autentikasi berhasil dengan server.
Selama autentikasi dengan GitHub, mesin lokal Anda menampilkan kunci privatnya sebagai bukti identitas. Server memeriksa apakah kunci publik terkait yang dikaitkan dengan akun GitHub Anda cocok dengan kunci privat yang diberikan. Jika kunci cocok, server memberikan akses, membuat file terenkripsi dan aman sambungan untuk komunikasi.
Menyiapkan SSH untuk GitHub
Di bagian ini, Anda akan melihat cara menyiapkan SSH untuk autentikasi dengan GitHub.
1. Membuat Pasangan Kunci SSH
Proses pembuatan pasangan kunci SSH adalah langkah pertama menuju penggunaan SSH untuk autentikasi.
- Buka terminal atau prompt perintah Anda.
- Jalankan perintah berikut untuk menghasilkan pasangan kunci SSH baru:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
- Anda akan diminta memasukkan lokasi file untuk menyimpan pasangan kunci. Tekan Memasuki untuk menerima lokasi default (~/.ssh/id_rsa) atau menentukan lokasi kustom.
> Menghasilkan pasangan kunci rsa publik/pribadi.
> Masukkan berkas di dalamyang untuk menyimpan kunci (/home/vagrant/.ssh/id_rsa): - Selanjutnya, Anda akan diminta memasukkan kata sandi. Meskipun opsional, menambahkan frasa sandi berfungsi sebagai tingkat keamanan tambahan. Pastikan Anda mengingat frasa sandi Anda.
> Masukkan frasa sandi (kosong untuk tanpa frasa sandi):
> Masukkan frasa sandi yang sama lagi: - Setelah membuat pasangan kunci, Anda akan melihat dua file di lokasi yang ditentukan. id_rsa (kunci pribadi) dan id_rsa.pub (kunci publik).
> Identifikasi Anda telah disimpan di dalam /home/vagrant/.ssh/id_rsa.
> Kunci publik Anda telah disimpan di dalam /home/vagrant/.ssh/id_rsa.pub. - Setelah selesai, sidik jari kunci dan gambar seni acak ditampilkan.
- Terakhir, Anda memerlukan konten kunci publik untuk ditambahkan ke GitHub. Jalankan perintah berikut untuk mendapatkan konten:
cat ~/.ssh/id_rsa.pub
Pastikan untuk menentukan jalur (~/.ssh/id_rsa.pub dalam kasus saya) yang Anda gunakan saat membuat kunci.
Salin konten ke lokasi yang aman dan sementara untuk digunakan nanti.
2. Menambahkan Kunci Publik ke GitHub
Sekarang setelah Anda membuat pasangan kunci SSH, Anda perlu menambahkan kunci publik ke akun GitHub Anda.
- Masuk ke akun GitHub Anda dan buka Akun Anda Pengaturan.
- Klik Kunci SSH dan GPG terletak di sidebar kiri.
- Klik Kunci SSH baru.
- Berikan kunci SSH Anda a Judul.
- Rekatkan konten kunci publik ke dalam Kunci bidang.
- Terakhir, klik pada Tambahkan kunci SSH untuk menyimpan kunci SSH ke akun GitHub Anda.
Anda telah berhasil mengekspor kunci publik ke Akun GitHub Anda dengan ini.
3. Mengonfigurasi Agen SSH
Agen SSH adalah program yang membantu mengelola kunci SSH dan menyediakan cara yang aman untuk menyimpan dan menggunakannya. Ini bertindak sebagai perantara antara mesin lokal Anda dan server jarak jauh selama otentikasi SSH. Ini memungkinkan Anda mengelola beberapa kunci SSH untuk berbagai akun GitHub.
- Pastikan agen SSH sedang berjalan.
$ eval"$(ssh-agen -s)"
> Agen pid 2757 - Tambahkan kunci pribadi ke agen SSH.
$ ssh-tambahkan ~/.ssh/id_rsa
> Masukkan frasa sandi untuk /home/vagrant/.ssh/id_rsa:
> Identitas ditambahkan: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)
Anda telah berhasil mengonfigurasi agen SSH untuk mengelola kunci Anda.
4. Menguji Koneksi SSH
Anda sekarang dapat menguji untuk memverifikasi bahwa koneksi SSH Anda sudah diatur dengan benar, dan Anda dapat mengautentikasi ke GitHub menggunakan SSH.
- Jalankan perintah di bawah ini untuk menguji koneksi SSH ke GitHub;
jika semuanya baik-baik saja, Anda akan melihat peringatan tentang sidik jari. Konfirmasi sidik jari dan ketik Ya untuk melanjutkan.ssh -T [email protected]
> Keaslian host 'github.com (140.92.130.4)' Bisatidak didirikan.
> Sidik jari kunci ECDSA adalah SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
> Apakah Anda yakin ingin melanjutkan menghubungkan (ya/tidak)? - Saat mengetik Ya, Anda akan melihat keluaran yang mirip dengan yang di bawah ini.
> Peringatan: Ditambahkan secara permanen 'github.com, 140.92.130.4' (ECDSA) ke daftar host yang dikenal.
> Hai pangeranwillingoo! Andasudah berhasil diautentikasi, tetapi GitHub tidak menyediakan akses shell.
Ini menunjukkan bahwa otentikasi berhasil.
Mengelola Repositori Dengan SSH
Mengonfigurasi SSH memungkinkan Anda mengelola repositori tanpa harus khawatir tentang masalah kata sandi dan token akses.
Menyetel URL jarak jauh
git jarak jauh mengatur-url asal [email protected]:/.git
Mengkloning repositori
git klon [email protected]:/.git
Mendorong perubahan ke repositori
asal git push
Menarik perubahan dari repositori
asal tarik git
Keuntungan SSH Dibandingkan Otentikasi Kata Sandi
Penggunaan SSH untuk autentikasi menawarkan beberapa keunggulan penting dibandingkan metode autentikasi berbasis kata sandi tradisional. Ini termasuk:
- Otentikasi SSH menghilangkan kebutuhan kata sandi, mengurangi risiko pencurian kredensial.
- Penggunaan kunci kriptografi membuatnya lebih kebal serangan brute force dibandingkan dengan password.
- Jika kunci pribadi Anda disusupi, Anda dapat mencabut dan menggantinya, menjadikan kunci yang disusupi itu tidak berguna.
Untuk alasan ini, autentikasi SSH cenderung menjadi opsi yang lebih baik dibandingkan dengan autentikasi kata sandi.
Praktik Terbaik dan Pemecahan Masalah
Untuk memastikan penyiapan SSH yang lancar dan aman, Anda perlu mengikuti praktik terbaik dan mengetahui masalah umum yang mungkin terjadi dan cara untuk memecahkannya.
- Selalu atur frasa sandi untuk membuat lapisan keamanan tambahan.
- Latih rotasi dan pencadangan kunci yang sering.
- Konfirmasikan setiap langkah untuk menghindari kesalahan izin atau konfigurasi agen SSH yang salah.
Dengan mengikuti praktik terbaik ini, Anda dapat menggunakan autentikasi SSH untuk GitHub dengan percaya diri.
Keserbagunaan SSH
SSH banyak digunakan di area lain untuk mengelola server, mikrokontroler, dan perangkat jaringan dari jarak jauh karena memungkinkan akses yang aman ke antarmuka baris perintah (CLI), memungkinkan pengguna untuk melakukan berbagai tugas, mengonfigurasi pengaturan, mentransfer file, dan memecahkan masalah masalah.