Profil melayani dua tujuan sekaligus: mencatat pengaturan koneksi, dan membawa kumpulan kredensial yang berfungsi. Ekstensi berkas tidak memberi tahu apa pun tentang yang mana yang Anda pegang. Baca isinya sebelum memutuskan bahwa berkas itu milik sebuah repositori.

Langkah-langkah di bawah mengasumsikan templat klien sedang dipertimbangkan untuk kontrol versi. Jalankan berurutan, dan berhenti sebelum melakukan commit terhadap apa pun yang tidak dapat Anda cabut.

Baca berkas yang akan Anda siapkan

Mulailah dari byte yang sebenarnya, karena profil yang merujuk berkas terpisah terlihat sangat berbeda dari yang menanamkannya. Cari penanda blok PEM dan tag sebaris bernama ca, cert, key, tls-auth, dan tls-crypt, dan pemeriksaan yang sama akan menunjukkan kedua kasus. Kunci privat terenkripsi tetap dihitung sebagai materi sensitif, dan kunci tls-auth atau tls-crypt bersama adalah kredensial meskipun bukan identitas pengguna. Terapkan tinjauan yang sama pada apa pun yang disiapkan bersama profil, termasuk arsip dan skrip penyiapan yang merujuk berkas kredensial.

Lalu lihat kumpulan yang disiapkan, bukan pohon kerja. git diff --cached menunjukkan apa yang benar-benar akan dimuat commit, dan itulah satu-satunya versi yang penting untuk keputusan ini.

Putuskan apa yang boleh didistribusikan repositori

Templat dapat membawa pengaturan bersama yang telah ditinjau dan penanda tempat bernama untuk semua yang diterima seseorang saat pendaftaran. Yang tidak dapat dibawanya adalah identitas yang bisa dipakai, karena repositori terdistribusi ke semua yang dapat membacanya, termasuk otomatisasi. Repositori privat mempersempit audiens tanpa mengubah pertanyaan apakah setiap pembaca berwenang atas kredensial itu.

Aturan abaikan mencegah penambahan di masa depan dan tidak melakukan apa pun terhadap yang sudah tercatat. Asimetri itu layak dihayati sebelum commit pertama, bukan setelah yang kesepuluh. Nama dan alamat infrastruktur adalah pertimbangan tersendiri: itu bukan rahasia autentikasi, tetapi dapat mengungkap lebih dari yang hendak diterbitkan tim. Ambil keputusan itu secara eksplisit daripada menggolongkan setiap baris menjadi kata sandi atau publik.

Jika materinya sudah ada di riwayat

Menghapus baris dalam commit baru meninggalkan versi lama utuh bagi siapa pun yang mengambilnya. Perlakukan paparan itu sebagai nyata: kenali jenis kredensialnya, lalu temukan otoritas yang dapat membatalkannya. Sertifikat klien dicabut dan daftar pencabutan dibuat ulang; kunci kanal kendali bersama diganti di server dan di setiap klien yang memakainya.

Keduanya punya radius dampak yang sangat berbeda, dan rencananya harus menyebutkan mana yang Anda jalankan sebelum mulai. Temukan commit yang memasukkan materi itu dengan pencarian bertipe git log --all -S 'BEGIN PRIVATE KEY', agar cakupan pembersihan diketahui, bukan diduga. Klon rekan kerja atau fork mungkin sudah memegang objek lama, karena itu pencabutan datang lebih dulu dan pembersihan kemudian.

Bersihkan hanya setelah ditahan

Menulis ulang riwayat mengubah setiap commit setelah yang Anda sunting, jadi pertama-tama perlu kesepakatan pemilik repositori dan orang-orang yang bekerja di dalamnya. Push paksa bukan perbaikan; itu peristiwa koordinasi dengan risikonya sendiri untuk dikembalikan. Jadwalkan, ambil cadangan, dan beri tahu tim kapan akan terjadi.

Setelah itu, verifikasi pohon saat ini dan riwayat yang tersisa alih-alih memercayai ringkasan alat.

Simpan hasilnya sebagai dua artefak: templat yang aman untuk dibagikan, dan inventaris kredensial yang diterbitkan melalui proses pendaftaran. Keduanya tidak menuntut adanya identitas yang bisa dipakai di dalam repositori.

Pemisahan itulah perbaikan yang sebenarnya, dan ia bertahan melewati orang berikutnya yang ingin melakukan commit pada profil.

Artikel terkait