web-dev-qa-db-ja.com

LinuxでgitプライベートSSHキーのカスタムパスを設定する

Linuxでgitクライアントをセットアップしようとしています。私は自分の秘密鍵をマシンにアップロードし、それを〜/ .sshに入れる必要があることを理解していますが、そのフォルダーにアクセスできません。

他の場所で秘密鍵を探すようにgitに指示するにはどうすればよいですか?

31
ripper234

1つのオプションは、ssh-agentを使用し、ssh-addにファイル名を指定することです。

例えば:

$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa
42
vhallac

ssh config file を使用して実現できます。

最初にconfigという名前の~/.sshフォルダー内にファイルを作成します。次のようなコマンドを使用できます

$ nano ~/.ssh/config

次に、ファイルのコンテンツには、各ホスト名に基づいたキーの場所が必要です。例えば:

Host github.com
 IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
 IdentityFile ~/myPublicKeyFolder/myHerokuFile

そのため、gitが各ホストにアクセスしようとすると、到達しようとしているgitホストに基づいて、この構成ファイル内のルールに従います。

46
Felipe Sabino

私はファイル名を~/.ssh/configに入れると言っていただろうが、おそらくあなたはこのファイルにもアクセスできないだろう。

ssh-i keyfileオプションで使用する秘密鍵を与えることができます。

Gitにsshに渡すオプションを指定する方法

GitTipsページ は、ラッパースクリプトを作成し、GIT_SSH環境変数でそれを指すことを示しています。

Git構成core.gitProxyも使用できるようですが、良い例が見つかりませんでした メーリングリストメッセージgit:プロトコル専用であることを示唆しています。

11
Paŭlo Ebermann

Ssh-agentを使用する

ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone [email protected]:uname/test-git-repo.git'
4
TlmaK0

私のアプリで作業しているプロジェクトの場合、すべてのgitコマンドでシェルスクリプトを吐き出して、外部リポジトリにinit/commit/Pushする必要があります。 〜/ .ssh/configは制限がないため、アプリディレクトリに公開/秘密キーがあります。私はvhallacの答えを使いました。これは、キーを使用するためにシェルスクリプトで行う必要があったものです。

eval `/usr/bin/ssh-agent`
ssh-add /path/to/.ssh/id_rsa

これが誰かを助けることを願って

1
m79lkm