LoginSignup
0
0

More than 5 years have passed since last update.

複数のGitHubアカウントの設定してSSH接続したが同じアカウント名が表示される

Last updated at Posted at 2018-12-07

結論

複数のGitHubアカウントに対しssh接続するために公開鍵を登録する場合、~/.ssh/id_rsa.pubの公開鍵は登録しない方が良い。

状況

個人用のGitHubアカウントと、アルバイト用のGitHubアカウントがあって、sshでそれぞれのリポジトリにpushする。
アカウントの切り替えが面倒なので、出来るだけgit push origin masterみたいな感じでアカウントの切り替えを気にせず作業を行いたかった。

自分の環境

macOS 10.14.1

設定

この場合の設定方法については先駆者様の記事がいくつかあって、要点をまとめると

  • 鍵を生成する
  • GitHubに公開鍵を登録する
  • ~/.ssh/configに必要事項を書き込む
  • ローカルリポジトリのoriginアドレスを書き換える
  • 必要であればlocalのコミットユーザ名、メールアドレスを変更する

といったような感じである。
詳細はこの記事の管轄外なので、この情報を欲している人は各自検索してほしい。

正常に動作するかはssh -T [configのHost]でチェックできる。
正常であれば、下記のようなレスポンスが期待される。

% ssh -T [configのHost(個人用)]
Hi [個人用アカウント名]! You've successfully authenticated、 but GitHub does not provide shell access.
% ssh -T [configのHost(仕事用)]
Hi [仕事用アカウント名]! You've successfully authenticated、 but GitHub does not provide shell access.

問題発生

ところが、自分の作業環境では

% ssh -T [configのHost(個人用)]
Hi [個人用アカウント名]! You've successfully authenticated、 but GitHub does not provide shell access.
% ssh -T [configのHost(仕事用)]
Hi [個人用アカウント名]! You've successfully authenticated、 but GitHub does not provide shell access.

と、仕事用のHostでssh接続しても個人用のアカウント名が表示される。
要するにどっちのHostでssh接続しても同じGiuHubアカウント名が表示されてしまうわけである。

解決

色々調べた結果、個人用アカウントのssh鍵に~/.ssh/id_rsa.pubを登録していたのが問題だったらしい。
どうやら、sshを実行するとまず~/.ssh/id_rsaを先に使用して認証し、次に~/.ssh/configを確認するようである。

-i identityファイル
公開鍵認証の際にidentity (秘密鍵) を読むファイルを指定します。デフォルトは、プロトコル 1 の場合ユーザのホームディレクトリにある~/.ssh/identity、プロトコル 2 の場合は~/.ssh/id_dsa ,~/.ssh/id_ecdsa ,~/.ssh/id_ed25519および~/.ssh/id_rsaになっています。identity ファイルは設定ファイルによって、ホストごとに指定することもできます。
ssh 日本語マニュアルページ

つまり、configに書いた仕事用の設定が適用される前に、先に個人用の鍵で認証がなされていたようだ。
なので、個人用は個人用で新しく鍵を生成して、GitHubに公開鍵を登録し直したところ、期待されたレスポンスを得ることができた。

補足

上記の引用はそれっぽいのですが、configをチェックする前に~/.ssh/id_rsa.pubでサーバに認証するかは書かれていないので正確ではありません。
しかし該当箇所は見つからず、かつ挙動はどう考えても推測したものであるため,ここではそうだと仮定しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0