banner
keney

keney

remain optimistic
twitter

Gitの複数アカウント設定

一、背景#

​ 同じコンピュータで複数の GitHub、gitee、gitlab アカウントを使用する必要がある場合や、複数のアカウントを持っていて公開鍵を生成するのが面倒な場合、git の複数アカウント設定が必要になります。

二、準備#

環境:Windows 10、git

使用する前に git をインストールする必要があります。git のインストールは「次へ」をクリックするだけで完了しますが、git コマンドについてもある程度の理解が必要です。

前提条件:C:\Users\nxg.ssh ディレクトリ(フォルダー)が必要です。git bash を開いてください。

以下の図のように:

image-20221031222311849

開いたらこのインターフェースを使用します:

image-20221031222421017

** 注意:** このパス C:\Users\nxg.ssh は、基礎知識がある人には上の図から理解できると思いますので、詳しくは説明しません。

​ なぜこのステップを最初に実行するのかというと、config ファイルを作成し、鍵を生成する際にはこの **.ssh** ディレクトリ(フォルダー)内で作成する必要があるからです。他のディレクトリで開くと、ファイル作成時のパスの問題を考慮する必要があります。わかりやすくするために、上記の方法で操作することをお勧めします。

三、設定#

3.1 config ファイルの作成#

C:\Users\nxg.ssh ディレクトリ(フォルダー)内に config ファイルを作成し、ssh key のルーティングポリシーを設定します。

config ファイルを作成:

touch config

config ファイルに設定:

# GitHub
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
    User git
    
# Github2
Host github2
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github2
    User git    

# gitee
Host gitee.com #自分のコード雲アドレス
    HostName gitee.com  
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_gitee
    User git
    

効果は以下の図のようになります:

image-20221031224144979

“#” はコメントを示します
Host の後は名前で、自由に書けます。別名を付けるようなものです。

各 Host は 1 つのリポジトリを表し、リポジトリのパラメータは新しい行に書き、前に 4 つのスペースを入れます。
HostName : 実際に接続するサーバーのアドレスです。

ssh の host、SSH アドレス「git@」の後からコロンの前までの内容です。

User:カスタムユーザー名で、一般的には「git」を使用します。
PreferredAuthentications:どの方法で認証を優先的に使用するかを指定します。パスワードと鍵の認証方式をサポートしています。「publickey」を使用すれば、git リポジトリはすべてこの形式です。

認証 --publickey,password publickey,keyboard-interactive などに設定できます。
IdentityFile:この接続で使用する鍵ファイルを指定します。この host のバックエンドで設定された公開鍵に対応する秘密鍵の絶対パスです。
Port : SSH のデフォルトポート番号は 22 で、一部のプライベートデプロイの git リポジトリはポート番号を変更することがあります。

3.2 グローバル設定#

github を例にとります:

# global全体設定、ここではグローバル設定を使用
# ユーザー名を設定:
git config --global user.name 'abc'  
# メールアドレスを設定:
git config --global user.email  "[email protected]"

#鍵をローカルに追加、つまり鍵を生成します
ssh-keygen -t rsa -C "[email protected]"

#同様にgiteeアカウントもこのように操作します。

注:ここでの abc は GitHub のユーザー名[email protected]はあなたが GitHub にバインドしたメールアドレスです。

以下の図の効果:

image-20221031232651471

gitee の設定効果は以下の図のようになります:

image-20221031232222217

注意:生成した鍵ファイルはここで保持する必要があります。

image-20221031233525370

接続成功のテスト#

GitHub に接続できたかテストします:

ssh -T git@github2

成功の効果:

Hi abc! You've successfully authenticated, but GitHub does not provide shell access.

Gitee に接続できたかテストします:

成功の効果:

Hi nxg! You've successfully authenticated, but GITEE.COM does not provide shell access.

注意事項:

image-20221031234333269

四、GitHub の関連付け#

id_rsa_gitee.pub ファイルの内容を gitee の設定内の SSH 公開鍵に追加します。

id_rsa_github2.pub ファイルの内容を GitHub の設定の SSH and GPG keys の SSH 公開鍵に追加します。

注:上記のファイルはすべてここにあります。

image-20221101162514113

効果は以下の図のようになります:

image-20221101162133360

注意#

複数のアカウントを設定する方法はいくつかあります。ファイルを直接編集する方法やコマンドを使用する方法があります。

ここではファイルを編集する方法を使用します。

まず、C:\Users\nxg パス内で **.gitconfig** ファイルを見つけて開きます。

image-20221031235250843

注意:直接ダブルクリックして開かないでください。開く方法を選択し、テキストで開くか、他の編集ツールで開いてください。

.gitconfigファイルの内容:

[user]
	name = xiaoli
	email = [email protected]
[core]
	autocrlf = true
[http]
	sslVerify = false
[user]
	name = abc
	email = [email protected]
[core]
	autocrlf = true
[http]
	sslVerify = false

効果は以下の図のようになります:

image-20221031235759564

アカウントリストの確認:#

git config --global --list

効果は以下の図のようになります:

image-20221101000219730

鍵の追加方法#

方法 1:

ssh-keygen -t rsa -C "[email protected]"

次にid_rsaを実行します。

image-20221031232651471

方法 2:

ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa

効果は以下の図のようになります:

image-20221101000544601

ssh-keygen の一般的なパラメータ説明:

-t: 鍵のタイプ、dsa | ecdsa | ed25519 | rsa から選択できます。

-f: 鍵のディレクトリ位置、デフォルトでは現在のユーザーのホームパス下の.ssh 隠しディレクトリ、つまり~/.ssh/ です。デフォルトの鍵ファイル名は id_rsa で始まります。root ユーザーの場合は /root/.ssh/id_rsa、他のユーザーの場合は /home/username/.ssh/id_rsa です。

-C: この鍵の備考情報を指定します。複数のパスワードなしログインを設定する場合は、持っていることをお勧めします。

-N: この鍵ペアのパスワードを指定します。このパラメータを指定すると、コマンド実行中にパスワード確認のインタラクションが表示されません。

例を示します:ディレクトリ位置、パスワード、注釈情報を同時に指定すると、Enter キーを押さずに作成を完了できます。

添付資料#

git 単一アカウント使用チュートリアル

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。