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


11

使用する秘密鍵をgitに伝える方法の行に沿って 特定の状況で特定のSSHキーを使用したいと思います。

私の問題は、「-i何か」を指定した場合でも、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を引き続き使用します。

回答:


5

私はついにそれを働かせました:

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~/.ssh/configUSER1のidentityfileパスのタイプミスがある場合、間違ったキー(USER2のキー)が代わりに使用されます。

BitBucketで手順を受け取りました。唯一の違いはHostName次のとおりなので、GitHubで機能するはずです。http//confluence.atlassian.com/pages/viewpage.action?pageId = 271943168#ConfiguringMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile

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


3
:エージェント転送再あなたの最後のコメントについては、この答えを参照 superuser.com/questions/273037/...
Stijnフープ

1

IdentitiesOnly yesこれらのホストの下の.ssh / configで使用します。


1
しかし、それはエージェントを使用せず、すべてのgithub接続のパスフレーズを入力するように強制します
svrist

1
はい、これが機能します。ssh-agentを使用する場合は、異なるキーを選択することはできません。1つの方法は、複数のssh-agentを起動し、異なるgithub操作に異なるラッパーを使用するか、ssh-agentを切り替える(SSH_AUTH_SOCKを変更する)だけで切り替える
Cougar

6
上記のコメントは正しくありません。ssh-agentからIDを選択できます。私がすでに上で述べた答え、superuser.com
questions / 273037 /

0

重要なのは、ディレクティブ内の公開鍵ファイルを使用すること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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.