以前 githubでの複数アカウントの使い分けかた を紹介しました。しかしあの方法だと Xubuntu ではうまく使いわけられませんでした。そこで原因と対策を調べたので紹介いたします。
原因
$ ps x | grep ssh
7231 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session startxfce4
$ ssh-add -l
2048 ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff koron@xps13 (RSA)
ということで ssh-agent
が原因でした。もっと細かく言うと環境変数 SSH_AUTH_SOCK
が定義れていることが原因です。なので unset SSH_AUTH_SOCK
するだけでも十分使い分けられますが…スマートではありませんね。
対策
やはりココは ~/.ssh/config
で対策したいところ。ちょっと調べたらちゃんと方法がありました。
Host gh-priv
HostName github.com
IdentitiesOnly yes
IdentityFile ~/.ssh/personal_github_key
Host gh-work
HostName github.com
IdentitiesOnly yes
IdentityFile ~/.ssh/work_github_key
このように IdentitiesOnly yes
と追加すると SSH_AUTH_SOCK
を見なくなりました。素晴らしい。
雑感
手っ取り早く ssh-agent
を止めてしまうことや、ssh-add
でちゃんと鍵を管理することも考えたのですが、そもそも Xubuntu がどんな目的で ssh-agent
を使っているのかわかりませんでした。また ssh-add
を設定すべき (Xubuntuでの) 正しいタイミングも不明です。しかもそれらを調べるのも面倒でしたので、上記のように手っ取り早く解決する方法を選びました。
もっと良い方法があったら是非教えてください。