1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

独立環境のGitHubEnterpriseとGitHub.comのssh-keyを共存させ、考えずにsshでcloneする

Last updated at Posted at 2021-11-05

sshとそのconfigファイル(~/.ssh/config)を正常に設定できれば造作もないことかも知れないが、とても設定で困ったので書く。
普段は、個人のアカウントでGitHubにアクセスしているが、独立環境にGitHubEnterprise(以降、GHEと呼称する)が構築され、そちらに対してもアクセスする必要ができた。
どちらも、セキュリティの観点からMFAを設定している。
そのため、ssh-keyを二つ生成して、それぞれにアクセスできるようにしたかった。
今回はmacOS Big Surで実施したため、Linux系は同様の設定で良いと思います。
Windows10の場合は後々やってみようと思います。

やりたいこと

  • MFA設定済みのGitHub.アカウントで、GitHub.comにSSHアクセスできるように設定をする。
  • MFA設定済みのGitHubとは異なるGHEアカウントで、独立環境のGHEにアクセスできるように設定する。
  • 以下のところでSSHをコピー&ペーストするだけでcloneできるようにする

image.png

# git clone git@github.com:hogehoge/hogehoge.git
# git clone git@[GHE独立環境のドメイン]:hogehoge/hogehoge.git

環境に関する情報

  • 作業マシン:MacbookPro2018 IntelCPU
  • 個人のGitHub.comアカウント
  • 独自環境に構築したOSS型GitHubEnterprise(要は仕事用環境)

ssh-keyの生成をする

以下の通り、鍵の生成を実施した。

  • GitHub向けの秘密鍵githubと公開鍵github.pub
  • GHE向けの秘密鍵gheと公開鍵ghe.pub
~/.ssh ❯❯❯ ls
config      ghe         ghe.pub     github      github.pub  id_rsa      id_rsa.pub  known_hosts

configファイルの編集

以下の通り記述しました。

# GitHub Enterprise 独立環境GHEのアクセス用の設定
Host [gheのURL]
        User git
        IdentityFile ~/.ssh/ghe
# GitHub 個人のGitHubアクセス用の設定
Host github.com
        User git
        IdentityFile ~/.ssh/github

注意:
環境数だけHostを書く。

  • Host:
    • ドメイン名を書くのです。そうしないと、GitHubやGHEのCloneページからコピー&ペーストで正常に秘密鍵を選択してアクセスしてない。
  • User:
    • gitと必ず書きましょう。コピーする文のgit@の部分と一致させるのです。
  • IdentityFile:
    • それぞれに合わせて生成した秘密鍵のパスを書くのです。

公開鍵をそれぞれに登録

公開鍵ファイルの中身それぞれに合わせて登録する。

接続テスト

GitHubなら

# ssh -T git@github.com

成功すると

Hi [GitHubのUserName] You've successfully authenticated, but GitHub does not provide shell access.

となる。


GHEなら

# ssh -vT git@[gheのURL]

成功すると

Hi [GHEのUserName] You've successfully authenticated, but GitHub does not provide shell access.

となる。

もし失敗した場合は、

# ssh -vT git@[接続先]

でデバッグメッセージを出力させて、想定している秘密鍵が選択されてアクセスしているかなど確認する。

さあ、Cloneしよう

きっとできるはずだ。勇気を出して。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?