2 つの異なる SSH キーで GitHub を使用して、2 つの異なるアカウントにアクセスしたいと考えています。これは問題ありません。構成でホスト名にエイリアスを設定することで簡単にセットアップできます。問題は、この構成が私の SSH 多重化構成と組み合わされたときに発生します。デフォルトの ControlPath をホスト固有の宣言でオーバーライドできないようです。
多分これはそれが機能する方法ですか?多分それはバグですか?私は何か間違ったことをしていますか?
ちなみにMac10.7です。
これが私の設定です:
Host *
ControlMaster auto
ControlPath ~/.ssh/connections/ssh-%r@%h:%p
Host github.com-X
TCPKeepAlive yes
ServerAliveInterval 60
ControlPersist 1h
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa_X
IdentitiesOnly yes
ControlPath ~/.ssh/connections/ssh-%r@%h-X:%p
Host github.com
TCPKeepAlive yes
ServerAliveInterval 60
ControlPersist 1h
少しいじりましたが、常に Host * 宣言で指定されているように ControlPath を取得するようです。
ssh -T git@github.com-X
id_rsa_X を使用して正しいユーザーとしてログインしますが、ここにドメイン ソケットが作成されます。
~/.ssh/connections/ssh-git@github.com:22
それよりも:
~/.ssh/connections/ssh-git@github.com-X:22
そのため、後で id_rsa を使用して SSH コマンドを発行しようとすると、接続の多重化のために id_rsa_X ユーザーが取得されます。言い換えると:
ssh -T git@github.com
キーが id_rsa_X であるユーザーのハロー メッセージを表示します。
すべての設定を読み取り、間違った ControlPath を使用しようとしていることがわかります。
$ ssh -vT git@github.com-X
OpenSSH_5.6p1, OpenSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /Users/<username>/.ssh/config
debug1: Applying options for *
debug1: Applying options for github.com-X
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/<username>/.ssh/connections/ssh-git@github.com:22" does not exist
<snip>
何か案は?