Gitでシェルコマンドを実行する際に使用するプライベートSSH-keyを指定するには?
ちょっと変わった状況かもしれませんが、ローカルコンピュータからシェル(git)コマンドを実行する際に使用するプライベートSSHキーを指定したいのです。
基本的にはこんな感じです。
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
あるいは、(Rubyでは)もっと良い。
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
指定した秘密鍵を使ってNet::SSHでリモートサーバに接続する例を見たことがありますが、これはローカルのコマンドです。可能でしょうか?
954
3
以下のような方法があります(orip氏による提案)。
もしサブシェルがお好みなら、以下のようにしてみてはいかがでしょうか(より壊れやすくなりますが)。
Git は SSH を起動します。SSH は環境変数でエージェントを見つけ、そのエージェントは鍵を読み込みます。
ただし、
.ssh
ディレクトリだけを含むディレクトリをHOME
として設定したい場合は、HOME
を設定してもかまいません。このディレクトリには identity.pub や IdentityFile を設定した config file を置くことができます。my_git_ssh_wrapperのコンテンツです。
とすれば、そのキーを使うことができます。
環境変数 GIT_SSH を使うこともできます。しかし、 ssh とオプションをシェルスクリプトにまとめる必要があります。
git マニュアルを参照してください。コマンドシェルで
man git
を参照してください。