web-dev-qa-db-ja.com

GIT_SSH_COMMANDに渡された引数「-i」は無視されます

Gitに他のIdentityFileを使用したい。設定ではなく、動的に使用したい。私はこれをやっています:

  $ GIT_SSH_COMMAND='ssh -i /home/my_user/.ssh/id_ed25519' git pull Origin master
  repository access denied.
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights
  and the repository exists.

パブキー "id_ed25519.pub"は私のビットバケットにあります。

そしてこれも失敗します:

  $ git pull Origin master
  repository access denied.
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights
  and the repository exists.

そして:

$ git remote -v
Origin  [email protected]:company123/repo456.git (fetch)
Origin  [email protected]:company123/repo456.git (Push)

追加" - V"'sshの-i /home/my_user/.ssh/id_ed25519'は、私のRSAキーが使用されていることを明らかにしますEDの代わりに。どうして?

6
jerry

最近のUbuntuバージョンでも同じ問題が発生しました。

-vvvを使用すると、次のことが明らかになりました。

debug2: key: /home/ubuntu/.ssh/id_rsa (0x5628e48246d0), agent
debug2: key: /home/ubuntu/code/id_rsa (0x5628e4820af0), explicit

-o IdentitiesOnly=yesを追加すると解決しました。

完全なgitコマンド:

GIT_SSH_COMMAND='ssh -o IdentitiesOnly=yes -i /home/ubuntu/code/id_rsa -F /dev/null' git pull
3
AlexTG

コマンド(gitは直接またはエイリアスを介して呼び出されます)と構成を確認します。
" GIT_SSH_COMMAND "を使用して述べたように、git config -lは、環境変数をオーバーライドする他の構成を明らかにする可能性があります。

git config core.sshCommandの戻り値を確認してください。

最後に、GIT_SSH_COMMANDはGit2.10以降を意味するため、Gitのバージョンが古すぎる場合は、最初に更新する必要があります。

3
VonC