web-dev-qa-db-ja.com

Windows上のGitで複数のsshキーを切り替える

リポジトリホスティングの2つの異なるアカウントにアクセスするには、クライアントに複数のキーが必要です。 https://redefy.repositoryhosting.com/support ->を参照してください。クライアントで複数のキーペアを持つ複数のアカウントを管理するにはどうすればよいですか?

Windows上のGitで異なるsshキーを変更する方法がわかりません。誰か助けてもらえますか?

38
Tobias Ekblom

Git bashとopensshを使用すると仮定します。

記事に書かれている内容と同様に、すべてのアカウントをリストするsshクライアント用の構成ファイルを作成できます。 ~/.ssh/configの独自のsshクライアント設定ファイルに次の設定を書き込むことができます

Host account-one
HostName server.example.com
User user-one
IdentityFile ~/.ssh/key-one

Host account-two
HostName server.example.com
User user-two
IdentityFile ~/.ssh/key-two

account-oneaccount-twoという名前の2つの種類の「ホストエイリアス」を定義するということです。これらを使用すると、接続時にsshクライアントはサーバーアドレス、ユーザー名、sshキーファイルに対応するHostNameUser、およびIdentityFileを使用します。これにより、同じサーバーでもアカウントとキーにアクセスするためにそれらを使用できます。

Gitでは、それらを使用して2つのリモートを定義できます

$ git remote add one account-one:repository.git
$ git remote add two account-two:repository.git

その後、それらのリモコンにプッシュすることができます

$ git Push one master
$ git Push two master
47
fajran

どのキーがどのサーバーに使用されているかは、gitが接続に使用しているSSHプログラムによって処理されます。デフォルト設定では、これはコマンドラインSSHクライアント(openSSH?)である必要があります。

OpenSSHを使用すると、~/.ssh/configファイルで特定のホストの特定のキーファイルを構成できます。

Host foo.example.com
  IdentityFile ~/.ssh/foo.example.com-id_rsa

Host bar.example.com
  IdentityFile ~/.ssh/bar.example.com-id_rsa

~/.ssh/*.example.com-id_rsaは、各サーバーの秘密鍵ファイルです。

これがお役に立てば幸いです。

13
mamapitufo

Windowsでは、PuTTY、PSCP、PSFTP、およびPlinkのSSH認証エージェントであるPageantを試す必要があります。このツールは、yout sshキーとそのパスフレーズを管理できます。 Gitと一緒に使用するには、PuTTYをインストールし、GIT_SSH変数を設定するplink.exeにリンクする必要があります。

  1. PuTTYと友人をインストールします(http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html)
  2. GIT_SSHを設定

    set GIT_SSH=<path-to-plink.exe>

  3. Pageantを起動し、キーを追加します
  4. Gitを実行する

ダニエル

2
Daniel S.

これについては間接的に少しお答えします。以前にgit bashを使用しましたが、git bashシェルを介してgitを使用すると、macまたはlinux bashシェルのように動作することがわかりました。 git bashを使用する場合、次のようにあなたの質問に答えることができることを意味します。

「git bashを使用する場合、LinuxまたはMacを使用している場合と同じように、ssh-agent/ssh-addおよび友人を使用して複数のアカウントを管理できます」

0
sethcall