13

.ssh/configと.git/configの下の構成がどのように相互作用するかを理解しようとしています。

状況は次のとおりです。2つの別々のgithubアカウントがあり、それらをGH0とGH1と呼びましょう。「パスワードなしで」、つまり、とのsshキーを使用して両方とやり取りしたいと思い~/.ssh/id_rsa.GH0.pubます~/.ssh/id_rsa.GH1.pub。現時点では、これはGH0では機能しますが、GH1では機能しません。(たとえば、pushGH1へのコマンドはERROR: Repository not found.\nfatal: The remote end hung unexpectedly.;で死にますssh -T git@github.comが、接続するためにのみ機能しますGH0。)

つまり、これらのgithubアカウントごとに、〜/ .ssh / configに対応するセクションがあり、それに使用するsshキーファイルを指定する必要があります。(たとえば、GH0のセクションにはIdentityFile ~/.ssh/id_rsa.GH0、などのようなものがあります)

問題は、これらの各セクションに他に何を入れる必要があるかということです。すなわち、

Hostのキーワードの引数として何を入力する必要があり~/.ssh/configますか?

これに関して私がこれまでに見つけた情報は私には意味がありません。いくつかの例では、私は次のようなものを見ます

Host github.com
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa

Host ac2.github.com
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa_ac2

その「ac2」はどこにありますか。2番目のプレフィックスはHostから来ています???

githubアカウントに対応するものはどこにありますか?

私が見つけた情報のいくつかは、Hostキーワードへの引数が実際には恣意的であると推測するように導きます。これは、次のことも問題ないことを意味します。

Host omgwtfbbq
    Hostname github.com
    User git
    IdentityFile ~/.ssh/GH0

Host 4.8.15.16.23.42
    Hostname github.com
    User git
    IdentityFile ~/.ssh/GH1

しかし、もしそうなら、これはさらに別の質問を提起します:(またはgithub)はどのようgitにしてこれらの2つのセクションのどちらを特定のコマンドに使用するかを知るのですか?

繰り返しになりますが、これはプロジェクトのファイルの一部のセクションで指定されると思いますが、どのようにしたらよいでしょうか。.git/config[remote ...]

1 1つには、.git / configでキーと値のペアを解釈するためのドキュメントを見つけることができなかったため、推測に頼らなければなりません。私が見つけた最も近いものはgit-configのマニュアルページですが、このページのセクションurl = ...の下のフィールドに関するドキュメントは見つかりません。[remote ...]git-remoteのマニュアルページにも、このフィールドに関するドキュメントはありません。

4

2 に答える 2

10

以下をせよ:

$ git remote add omgwtfbbq git@omgwtfbbq:user/repo.git
$ git pull omgwtfbbq master

これは、gitホストとしてHost定義したエイリアスを使用~/.ssh/configするため、設定したIdentityFileを使用します。

于 2013-02-05T09:21:18.683 に答える
4

はい、Host.ssh/configファイルの行はエイリアスです。の代わりに使用すると、github.comSSHを適切に使用するものはすべて、ファイルを読み取って実際のホスト名にスワップし、指定されたキーファイルとユーザー名(指定されている場合)も使用します。

于 2013-02-04T17:15:07.000 に答える