Rumah > Soal Jawab > teks badan
RT. 已经知道从本地如何不用密码就完成git push到github上,但很好奇为啥http方式就需要每次密码认证才能push,个人对网络协议啥的没接触过,网上也没查到相关解释,所以来这里问下~
我想大声告诉你2017-05-02 09:49:34
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
ataugit 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 clone
Tetapi 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.balas0
为情所困2017-05-02 09:49:34
Bagaimanakah anda fikir HTTP menyimpan kata laluan yang telah anda masukkan?