複数のgithubアカウントを設定するためのsshキー
記事目次
同じコンピュータの同じssh共通鍵を、複数のgithubアカウントに設定することはできません。例えば、会社のパソコンのssh公開鍵を会社のgithubアカウントに設定した後、同じ公開鍵で個人のgithubアカウントに設定することはできません。このとき、複数のssh鍵を生成して、それぞれ別のgithubアカウントに設定する必要があります
I 新しいsshキーを生成する
ssh-keygen -t rsa -f "new_name"
-f
vim config
新しく生成される鍵の名前をカスタマイズします。そうしないと、デフォルトの鍵である id_rsa と id_rsa.pub が生成され、既存のデフォルトの鍵が上書きされます。
生成された鍵ファイルは以下のようなものです。
II 新しい公開鍵をgithubのアカウントにコピーします。
このステップでは、個人のgiuhubアカウントにログインし、新しく生成された公開鍵をguthubに設定するだけです。
III ~/.ssh/config ファイルを設定します。
設定ファイルがない場合は、~/.ssh ディレクトリに設定ファイルを作成し、ssh 秘密鍵のためのサーバーの設定に使用します。
# key1 Company github account
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id-rsa
# key2 my personal guthub account, xxx.github.com. me is custom
Host me.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/littlerpl.git
ssh -T [email protected]
ssh -T [email protected]
以下は、コンフィグの詳細設定です。
Permission denied (publickey)
IV github サーバーへの ssh 接続のテスト
ssh-add -l
以下の画像は、設定が成功したことを示しており、ここで終了となります。
以下のような場合。
The agent has no identities.
最初にsshのパーミッションを確認する必要があります
1. システムのssh-keyプロキシを確認し、以下のコマンドを実行します。
ssh-add -D
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/littlerpl.git
上記のコマンドの出力が
me.github.com
は、エージェントが存在しないことを意味します。
システムにエージェントが存在する場合は、以下のコマンドでクリアできます。
[email protected]
2. 次に、以下のようにコマンドを実行し、異なるsshプロキシを順番に追加していきます。
git clone [email protected]:账户名/仓库
git remote add test [email protected]/test.git Adding a remote repository
littlerpl.gitは個人鍵ファイルで、後でsshを再度テストするために使用します。
Vに関する注意事項
手順3の設定完了後、デフォルトアカウント以外のgithubリポジトリに接続する場合、リモートアドレスを適宜変更する必要があります。
設定方法
me.github.com
個人用の git では git@github を使用することはできません。
[email protected]
例
git clone [email protected]:账户名/仓库
git remote add test [email protected]/test.git Adding a remote repository
関連
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?
-
[解決済み] リモートブランチにプッシュできない、ブランチに解決できない
-
[解決済み] GIT_SSH エラーを使用してカスタム SSH を使用した Git クローン
-
[解決済み] git diff --ignore-space-change をデフォルトにする方法
-
[解決済み] Git のプッシュに時間がかかる
-
[解決済み] SourceTreeの2つのブランチのdiffを視覚的に取得する方法はありますか?
-
[解決済み] 多くのリポジトリがある場合、SourceTreeは非常に遅くなります。
-
[解決済み] gitのルートディレクトリを1つのコマンドで取得する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在のブランチのトラッキング情報がありません。
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
[解決済み] git stashを元に戻す
-
[解決済み] fatal: EOF が早い fatal: インデックスパックが失敗した
-
[解決済み] origin にプッシュしようとすると、Git が "No such remote 'origin'" と言ってしまうのですが?
-
[解決済み] 「git ビルド中に「@INC に ExtUtils/MakeMaker.pm の場所が見つかりません。
-
git エラー。以下の追跡されていない作業ツリーファイルは、チェックアウトによって上書きされます。
-
TortoiseGitです。でコードを更新 このリポジトリでは、別の git プロセスが実行されているようです。
-
Gitコミットエラーです。このリポジトリで別の git プロセスが実行されているようです(例.解決方法