RT. Saya sudah tahu cara menyelesaikan git push ke github secara setempat tanpa kata laluan, tetapi saya ingin tahu mengapa kaedah http memerlukan pengesahan kata laluan setiap kali saya tidak mempunyai pengalaman dengan protokol rangkaian dan belum menyemaknya penjelasan yang berkaitan, jadi saya datang ke sini untuk bertanya~
Saya rasa ini berkaitan dengan beberapa ciri protokol http. Malah, github menggunakan protokol http Pintar, yang berdasarkan protokol http. Namun, untuk kemudahan, saya juga akan terus menggunakan protokol http untuk memanggilnya kemudian.
Apabila anda menggunakan protokol http, anda boleh menolak, mengklon dan menarik gudang jauh tanpa sebarang konfigurasi setempat Dalam erti kata lain, anda boleh menggunakan protokol ini di mana-mana sahaja, iaitu, ia bebas tempatan. Ini adalah ciri utama yang membezakan protokol ini daripada protokol ssh. Kerana protokol http tidak akan mengingati atau mengetahui dari siapa permintaan itu, melainkan kaedah khas digunakan, seperti kuki. Oleh itu, bagi pelayan yang memerlukan kebenaran, anda mesti memasukkan nama pengguna dan kata laluan anda untuk pengesahan sebelum anda boleh mendapatkan atau menolak data, supaya pelayan mengetahui siapa anda dan sama ada anda boleh mendapatkan atau menolak data.
Ciri-ciri protokol http adalah bertentangan dengan protokol ssh Protokol ssh bergantung pada kunci ssh untuk mengenal pasti sama ada anda mempunyai kebenaran untuk menolak atau mendapatkan data, manakala kunci ssh disimpan secara setempat mempunyai kunci ssh secara tempatan, sudah tentu, pemerolehan tidak dapat diselesaikan atau operasi menolak data. Kedua-duanya hanya membentuk hubungan yang saling melengkapi dan bertentangan.
Sekarang anda sepatutnya tahu jawapan kepada soalan itu!
Saya ingin menyatakan sedikit lagi di bawah, yang mungkin dapat membantu anda. Biar saya ringkaskan kelebihan dan kekurangan kedua-duanya di sini:
Protokol http
Kelebihan: Ia menjimatkan masalah konfigurasi setempat, selagi anda mempunyai URL dan kebenaran yang sepadan, anda boleh melakukan operasi yang sepadan
Kelemahan: Pengesahan yang kerap diperlukan untuk setiap operasi, melainkan mekanisme caching kata laluan digunakan
protokol ssh
Kelebihan: Tidak perlu memasukkan kata laluan untuk pengesahan setiap kali semasa menolak atau mendapatkan data
Kelemahan: Perlu mengkonfigurasi dan menjana kunci ssh sebelum digunakan
Selain itu, untuk tapak web github, kami akan mendapati bahawa
git push
,git pull
dangit fetch
memerlukan pengesahan, tetapigit clone
tidak memerlukan pengesahan. Daripada ini, saya boleh membuat spekulasi (hanya spekulasi peribadi saya, untuk rujukan sahaja) bahawa pelayan github adalah jenis pelayan yang memerlukan kebenaran, tetapi mungkingit clone
ialah salah satu operasi yang ditetapkan khas yang tidak memerlukan pengesahan.Tetapi saya menemui ayat ini dalam manual bantuan Github:
Bagaimanakah anda fikir HTTP menyimpan kata laluan yang telah anda masukkan?