.ssh/configと.git/configの下の構成がどのように相互作用するかを理解しようとしています。
状況は次のとおりです。2つの別々のgithubアカウントがあり、それらをGH0とGH1と呼びましょう。「パスワードなしで」、つまり、とのsshキーを使用して両方とやり取りしたいと思い~/.ssh/id_rsa.GH0.pub
ます~/.ssh/id_rsa.GH1.pub
。現時点では、これはGH0では機能しますが、GH1では機能しません。(たとえば、push
GH1へのコマンドは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のマニュアルページにも、このフィールドに関するドキュメントはありません。