2016-12-19 4 views
3

私は様々なシステムなどのために複数のsshのconfigフォルダを持っている:SSHの設定ファイルを使用するのgitを知らせる

ssh -F ~/.ssh/system-a/config [email protected] 
ssh -F ~/.ssh/system-b/config [email protected] 

各フォルダには、設定ファイルを持っているので、

Host system-a 
    HostName <some_hostname> 
    User <some_username> 
    IdentityFile ~/.ssh/system-a/keys/system-a.pem 

どのようにIDファイルの設定gitタスクを実行するときに特定のssh設定ファイルまたは特定のsshキーを使用するようにgitに指示しますか?

可能であれば、これをgitプロジェクトごとに行うのが理想的です。

+0

http://superuser.com/questions/232373/how-to-tell-git-which-private-key-to-use gitにどのsshキーを使用するかを伝える方法を説明します。 – therobinkim

+1

[指定されたドメインのgit pushにSSH鍵を指定する]の可能な複製(http://stackoverflow.com/questions/7927750/specify-an-ssh-key-for-git-push-for-a-given-ドメイン) –

+1

@therobinkimは、GitHub用のセグメントを作る方法を説明しています。gitに特定の設定ファイルを使う方法ではありません。 – 1615903

答えて

1

Andrejs CainikovsとJakujeが指摘したように、最新のgitを持つ複数のssh-configファイルを使用することは可能です。

:のようなレポのクローンを作成し、その後

Host SOMELABEL 
    HostName <some_hostname> 
    User <some_username> 
    IdentityFile ~/.ssh/system-a/keys/system-a.pem 

Host OTHERLABEL 
    HostName <other_hostname> 
    User <other_username> 
    IdentityFile ~/.ssh/system-b/keys/system-a.pem 

をして:

ただし、複数のconfigurationss、おそらくすべての単一の実のホストを参照すると、単一のssh-configファイルとほぼ同じ結果を得ることができます

git clone SOMELABEL:foo/bar.git 
    git clone OTHERLABEL:frobnozzel.git 

このことはして<other_username>@<other_hostname>を使用するのに対し、barリポジトリの~/.ssh/system-a/keys/system-a.pemでのssh-キーで<some_username>@<some_hostname>を使用します。 ssh-keyは~/.ssh/system-b/keys/system-a.pemfrobnozzelのリポジトリにあります。

sshCommand = "ssh -F ~/.ssh/system-a/config" 

これはgitの2.10以降でのみ動作します:[core]セクションにローカルリポジトリ内

git configcore.sshCommand "ssh -F ~/.ssh/system-a/config" 

または.git/config中:コマンドライン上

+0

@AndrejsCainikovs私は訂正しています(そして私の答えを更新しました)。私はまだ理解していません*なぜ複数のssh-config-filesが単一のものより優先されるでしょうか(もちろん@pfwdまでです) –

+0

もちろん、〜/ .gitconfigと '〜/ .ssh/config'は行く方法です。しかし、私はOPがコーナーケースを打つと思う。おそらく、テストの自動化、または何か... –

+0

@umläute私は働くことを好む方法。私は別々の設定ファイルとディレクトリを持っているのが好きです。すべてを一括して扱うのではなく、 – pfwd

1

。それ以外の場合は、環境変数$GIT_SSH_COMMANDを使用して設定する必要があります。

+1

@AndrejsCainikovsです。私は実際のリリースノートを見つけませんでしたし、2.9にはこの機能がありませんでした。 – Jakuje

1

gitの2.10+

チェックJakuje answer

gitの2.9-

使用core.gitproxy魔法を行うカスタムスクリプトを指します。

関連する問題