0

全て、

SSH を使用して github/bitbucket と通信していますが、うまくいくこともありますが、うまくいかないこともあります。問題を理解しようとすると、実際にはこれがどのように機能するかがよくわからないことに気付きます。

  1. 秘密鍵はどのように選択されますか?
    ssh-add または pageant を使用して秘密鍵をロードすることもできますが、複数の鍵をロードすることもできます。リクエストを送信した後にチャレンジを受け取ったときに、どの秘密鍵を使用するかを ssh クライアントがどのように決定するのでしょうか?
  2. 公開鍵はどのように選択されますか?
    GitHub サーバーには大量の公開鍵があります。リクエストを github に送信するとき (git push など)、GitHub に登録したユーザー名を指定する必要があることを覚えていません (user.name を構成する必要がありますが、それはあなたのコミットにタグを付けるためだけだと思います)-リクエストを受信したときにGitHubがどの公開鍵を使用するかをどのように判断し、GitHubでさえどのユーザーがリクエストを送信しているかを知っています(どのように?)、どのようにして正しい公開鍵を選択できますか?複数のキー - アカウントに複数のキーを追加できることを覚えておいてください。

ありがとう。

4

1 に答える 1

2

~/.ssh/id_rsa ファイルがデフォルトで選択されています。

別のキーを提供する必要がある場合は、~/.ssh/configファイルで IdentityFile ディレクティブを使用できます。

Github がどのアカウントを認識しているかは、チャレンジ時にシステムがキー チャレンジ シーケンスの一部としてユーザー名を提供し、ルックアップが行われるためです。その後、キーが交換され、検証または拒否されます。

マニュアルページを自由に使用できるようにすることをお勧めします。これはOpenSSH プロジェクトの優れたリファレンスであり、これが一般的な意味でどのように機能するかについてのより多くの情報があります。

Github はニーズに合わせて ssh デーモンを変更しましたが、ほとんどの場合、仕様に従う必要があるため、外部的には動作の違いは見られませんが、認証されたようにサービスにすばやく接続できるという利点があります/リポジトリで実行できるすべてのアクションに対して承認されています。

于 2013-07-31T05:57:52.967 に答える