it-swarm-ja.com

ssh-agentから指定されたキーを使用します

どの秘密鍵を使用するかをgitに指示する方法は? 特定の状況で特定のssh鍵を使用したいと思います。

私の問題は、「-isomething」を指定してもsshがssh-agentのキーを追加された順序で使用することです。

私の特定の状況:

  • 2人のgithubユーザーがいて、それぞれが独自のキーを持っています。たとえば、ssh-configを使用して、クローンごとに使用するキーを指定します。

    ホストUSER1.git

    ホスト名github.com

    ユーザーgit

    IdentityFile〜/.ssh/USER1.id_rsa

ssh -vt USER1.git

それがssh-agentに最初に追加されたキーである場合、引き続きUSER2.id_rsaを使用します。

11
svrist

私はついにそれを機能させました:

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa
  • インデントが重要です。
  • ssh-add -lを実行し、両方のキーが追加されていることを確認します。
    • タイプミスを避けるために、各パスをssh-add -lから~/.ssh/configの適切な行にコピーして貼り付けます。 USER1に~/.ssh/config IDファイルパスのタイプミスがある場合、代わりに間違ったキー(USER2のキー)が使用されます。

私はBitBucketで指示を受けました。唯一の違いはHostNameであるため、GitHubで機能するはずです: http://confluence.atlassian.com/pages/viewpage.action?pageId=271943168#ConfigureMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile

エージェント転送を使用してリモートサーバーでこれを機能させるには、以下の@ stijn-hoopの提案を試してください(この回答のコメントセクションにあります)。

5
dgo.a

使用する IdentitiesOnly yesこれらのホストの下、.ssh/config内。

1
Cougar

重要なのは、IdentityFileディレクティブ内で公開鍵ファイルを使用することです。

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa.pub

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa.pub

SSH構成内で秘密鍵を指定した場合、秘密鍵が暗号化されていると、SSHエージェントは正しい鍵を選択できません。

Stackexchangeに関する同様の質問: https://unix.stackexchange.com/a/495785/264704

0
ttimasdf