github - 为什么http方式的git push需要密码。
ringa_lee
ringa_lee 2017-05-02 09:47:34
0
2
1033

RT. 已经知道从本地如何不用密码就完成git push到github上,但很好奇为啥http方式就需要每次密码认证才能push,个人对网络协议啥的没接触过,网上也没查到相关解释,所以来这里问下~

ringa_lee
ringa_lee

ringa_lee

全員に返信 (2)
我想大声告诉你

これは http プロトコルの特定の特性に関連していると思います。実際、github は http プロトコルに基づく Smart http プロトコルを使用します。ただし、便宜上、後で http プロトコルを直接使用して呼び出すことにします。

http プロトコルを使用すると、ローカル構成を行わずにリモート ウェアハウスをプッシュ、クローン、プルすることができます。つまり、このプロトコルはどこでも使用できます。つまり、ローカルに依存しません。これは、このプロトコルを ssh プロトコルと区別する主要な機能です。 Cookie などの特別なメソッドが使用されない限り、http プロトコルはリクエストの送信者を記憶したり認識したりしないためです。したがって、承認が必要なサーバーでは、データを取得またはプッシュする前に、検証のためにユーザー名とパスワードを入力する必要があります。これにより、ユーザーが誰であるか、またデータを取得またはプッシュできるかどうかをサーバーが認識できるようになります。

http プロトコルの特性は、ssh プロトコルとはまったく逆です。ssh プロトコルは、データをプッシュまたは取得する権限があるかどうかを識別するために ssh キーに依存しますが、その場合、ssh キーはローカルに保存されます。ローカルに ssh キーがない場合、データの取得またはプッシュの操作を完了することはできません。両者はまさに相補的であり、対極的な関係を形成しています。

これで質問の答えがわかるはずです!

あなたの役に立つかもしれないので、以下でもう少し詳しく述べたいと思います。ここで 2 つの利点と欠点をまとめてみましょう:

  • httpプロトコル

    • 利点: URL と対応する権限がある限り、対応する操作を実行できます

    • 欠点: パスワード キャッシュ メカニズムが使用されていない限り、各操作で頻繁に検証が必要になります

  • sshプロトコル

    • 利点: データをプッシュまたは取得するときに毎回認証のためにパスワードを入力する必要はありません

    • 欠点: 使用前に ssh キーを設定して生成する必要がある

さらに、github ウェブサイトの場合、git Pushgit pull、およびgit fetchは検証が必要であることがわかります。git clone を実行するときに検証は必要ありません。このことから、github サーバーは認証が必要な種類のサーバーであると推測できます (あくまで個人的な推測ですが、参考までに)。おそらくgit cloneは検証を必要としない特別に設定された操作です。 。 1つ。git pushgit pullgit fetch的时候需要验证,而git clone的时候不需要验证。由此,我可以这样推测(只是我的个人推测,仅供参考),github的服务器就属于那种需要授权的服务器,但是可能git clone是特别设置不需要验证的操作之一。

但是我在Github的帮助手册中发现了这句话:

When yougit clone,git fetch,git pull, orgit pushto a remote repository using HTTPS URLs on the command line, you'll be asked for your GitHub username and password.
当你在命令行中使用HTTPS的URL来对远程仓库进行git clone,git fetch,git pull, 或者git push操作时,你会被要求输入Github的用户名和密码。

但是实际上git clone

しかし、Github ヘルプマニュアルで次の文を見つけました: ##
## git clonegit fetchgit pullを行うときコマンドラインで HTTPS URL を使用してリモート リポジトリにコード>、または git Pushを実行すると、GitHub のユーザー名とパスワードの入力を求められます。
コマンドラインで HTTPS URL を使用する場合は、 git clonegit fetchgit pull、または git Push操作では、Github のユーザー名とパスワードの入力を求められます。 ##
##しかし、実際には、 git cloneはユーザー名とパスワードの入力を必要としません。ヘルプ ドキュメントが間違っているからでしょうか? ここで、他の人が私の回答を続けられることを願っています。 !または、新しく開いた質問で回答することもできます。ここをクリックして入力してください。 ##
いいねを押す+0
    为情所困

    HTTP は入力したパスワードをどのように保存すると思いますか?

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!