github - Mengapa git push berasaskan http memerlukan kata laluan?
ringa_lee
ringa_lee 2017-05-02 09:47:34
0
2
1138

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~

ringa_lee
ringa_lee

ringa_lee

membalas semua(2)
我想大声告诉你

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 dan git fetch memerlukan pengesahan, tetapi git 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 mungkin git clone ialah salah satu operasi yang ditetapkan khas yang tidak memerlukan pengesahan.

Tetapi saya menemui ayat ini dalam manual bantuan Github:

Apabila anda git clone, git fetch, git pull atau git push ke repositori jauh menggunakan URL HTTPS pada baris arahan, anda' Jika akan diminta untuk nama pengguna dan kata laluan GitHub anda, atau operasi
, anda akan diminta memasukkan nama pengguna dan kata laluan Github anda. git cloneTetapi sebenarnya anda tidak perlu memasukkan nama pengguna dan kata laluan anda. Mungkinkah dokumen bantuan itu salah? Atau anda boleh menjawabnya dalam soalan saya yang baru dibuka, klik di sini untuk masuk.

为情所困

Bagaimanakah anda fikir HTTP menyimpan kata laluan yang telah anda masukkan?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan