1. ホーム
  2. git

[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?

2022-03-20 23:48:11

質問

ちょっと変わった状況かもしれませんが、シェルを実行する際に使用するプライベート SSH 鍵を指定したいのです ( git ) コマンドをローカルコンピューターから実行します。

基本的にはこのような感じです。

git clone [email protected]:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"

あるいはもっといい(Rubyの場合)。

with_key("/home/christoffer/ssh_keys/theuser") do
  sh("git clone [email protected]:TheUser/TheProject.git")
end

でリモートサーバーに接続する例を見たことがあります。 Net::SSH 指定された秘密鍵を使用するものですが、これはローカルコマンドです。可能でしょうか?

解決方法を教えてください。

このようにすればうまくいくはずです(orepさんの提案)。

ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git'

サブシェルがお好みなら、次のような方法もあります(ただし、より壊れやすくなります)。

ssh-agent $(ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git)

Git は SSH を起動し、環境変数からエージェントを探します。このエージェントは、順番に鍵をロードします。

または HOME を含むディレクトリをセットアップすることを厭わないのであれば、このトリックも可能です。 .ssh というディレクトリを HOME これは、identity.pubを含むか、または 設定ファイル IdentityFileを設定する。