LoginSignup
0
0

【備忘録】GitHubにSSH Keyを登録したり、複数のSSH Keyを使い分けたりする

Last updated at Posted at 2024-02-13

初学者によるメモ書きです。
間違いや非効率な点、セキュリティ的に問題のある行為が含まれる場合はご指摘ください

WSLとかでつかえる

最初にgitのアップデートをしておくと安心かも
sudo apt-get update
sudo apt-get install git

設定方法

SSHキーの作成

  • ssh-keygen -t rsa
  • いくつか質問が出てくるはず.特になければ全部EnterでOK

GitHubに公開鍵を登録

  • SSH keysにアクセスして New SSH key をクリック
  • タイトルは区別できる好きな名前をつける
  • キーは,cat ~/.ssh/id_rsa.pub | clip.exe で公開鍵のキーをクリップボードでコピーできるので,そのまま貼り付ける (Windows系の場合)
    • Mac なら cat ~/.ssh/id_rsa.pub | pbcopy
    • Ubuntu なら sudo apt-get install xsel で xsel をインストールしたあとに cat ~/.ssh/id_rsa.pub | xsel --clipboard --input
  • Add SSH key をクリックして登録完了

設定確認

  • ssh -T git@github.comHi {NAME}! と表示されればOK

GitHubからのクローン

  • リポジトリのトップページで緑色の <> Code からSSH を選択
  • 出てくる文字列をコピーし,git clone {コピーした文字列} でクローンできる

アカウントの設定

  • ユーザ名 git config user.name {GitHubのユーザ名}
  • メールアドレス git config user.email {GitHubのメールアドレス}
  • オプション --local をつけると,そのgitディレクトリだけで反映される

複数のGitHubアカウントを使い分けたいとき

新しいGitHubアカウント用の公開鍵・秘密鍵をつくる

  • cd ~/.ssh で .ssh ディレクトリに移動
  • ssh-keygen -t rsa
  • 1番目の質問で,追加するアカウント用のキーの名前を決める
    • id_rsa と被らないように id_rsa_sub など
  • 残りの質問はEnterでぽいぽい
  • ls で鍵が生成させれているか確認しておく

config ファイルに追加するアカウントの設定を書き込む

  • touch config で .sshディレクトリ内にconfigファイルを作成
  • nano config などで開く
  • 以下のように設定する
    • githubgithub-sub は任意のホスト名 (あとで接続するときに使う名前)
    • IdentityFile は秘密鍵の場所
#メインアカウント
Host github #任意のホスト名
  HostName github.com
  IdentityFile ~/.ssh/id_rsa #メインアカウントの鍵のファイル
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

#サブアカウント
Host github-sub #任意のホスト名
  HostName github.com
  IdentityFile ~/.ssh/id_sub_rsa #サブアカウントの鍵のファイル
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

ディレクトリごとにアカウントを変える設定

  • ~/.gitconfig と同じディレクトリに .gitconfig_private.gitconfig_work をつくる
  • それぞれに以下のように記述する
[user]
    name = <USER>
    email = <MAIL>
  • .gitconfig に以下を追記する (gitdirは適宜変更)
# workディレクトリの時に.gitconfig_workが読み込まれる
[includeIf "gitdir:~/GitHub/work/"]
path = ~/.gitconfig_work

# privateディレクトリの時に.gitconfig_privateが読み込まれる
[includeIf "gitdir:~/GitHub/private/"]
path = ~/.gitconfig_private

接続確認

  • 先ほど設定したホスト名で ssh -T [Host] で接続できる
    • Hi {アカウント名}! のメッセージが表示されればOK

注意

  • GitHubからのクローンなどでリモートと接続するときは以下のように git@[Host] として接続するようにする
git clone git@[Host]:<アカウント名>/<リポジトリ名>.git
  • 特定のアカウントで管理したいリポジトリ内は git config user.name NAME --local で設定しておく
    • 正しいアカウントでできているかは commit して試してみるとか

参考

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