はじめに
会社のGithub git repository を自宅Linuxマシンにclone して開発するとします。そのとき、
- 自分のアカウントを切り替えないと、自分の個人活動のアカウントで会社のgit repository に commit してしまいます。Pushは会社のアカウントでおこなわれているとしても、そのcommti tree に個人のアカウントがあることになり、恥ずかしい。
- 会社のGithub にssh-key を登録しますが、それは個人のアカウントとは違います。切り替え作業無しで行いたい。
という課題があったのですが、普通に解決できたのでメモしておきます。
会社の仕事もLinuxマシンで開発できれば効率的で良いのだけれどね。
内容
1. 会社用のssh-key を用意して会社アカウントのGithub に登録する
普通に鍵を作ります。ファイル名を指定し、既存のものと区別するようにしましょう。
cd ~/.ssh
ssh-keygen -t ed25519 -C iam.slave@submissive.com -f salves_key_ed25519
パスフレーズは空でも大丈夫でした。公開鍵と暗号鍵ができてることを確認します。
Github に sign-in し、setting を選択します。このとき左側に表示される "ssh and GPA-" をから、新しい鍵を登録できます。先程作成した公開鍵をコピペします。
鍵の登録については、Github のページにあるマニュアルも参考になります。
2. 会社github repository にアクセス設定 (~/.ssh/config)
~/.ssh/config というファイルに設定を記入します。IndentifyFile で先程作成した秘密鍵を指定します。
Host github_submissive
HostName github.com
User git
IdentityFile ~/.ssh/salves_key_ed25519
IdentitiesOnly yes
アクセスできることを確認しましょう。
$ ssh -T git@github.com
Enter passphrase for key '/home/user/.ssh/slaves_key_ed25519':
Hi user! You've successfully authenticated, but GitHub does not provide shell access.
3. 会社github repository を cloneする
設定したssh の設定でclone します。
$ git clone github_submissive:TheCompany/mylabor.git
で、会社のGithub アカウントの TheCompany にある、mylabor.git をclone します。このとき、github_submissive として ~/.ssh/config で定義されている条件でrepository にアクセスします。
4. Local repository で会社のアドレスを指定する
この作業をしないと、clone したローカルのレポジトリで作業してcommit するときのユーザがデフォルトのユーザになってしまいます。ここでは、このレポジトリでのユーザが会社アカウントのユーザであることを定義します。clone したrepository に移動して、git config --local で定義します。
$ cd maylabor
$ git config --local user.name iam.slave
$ git config --local user.email iam.slave@submissive.co.jp
この作業ディレクトリに ./git/config
にファイルが作成されます。このファイルには remote origin なども書かれていますが、少なくともuser の定義があることを確認しましょう。
[user]
name = iam.slave
email = iam.slave@submissive.company.jp
以上で完了です。
普通に編集を行い、git add, git commit, git push ができるはずです。
まとめ
とりあえず、行いたいことができている感じです。何か不足があれば追記するつもりです。
以下を参考にしました。多謝。
(2022/04/02)
-
$ ssh -T git@github.com
を追記 (2023/02/26)