Linuxでgitクライアントをセットアップしようとしています。私は自分の秘密鍵をマシンにアップロードし、それを〜/ .sshに入れる必要があることを理解していますが、そのフォルダーにアクセスできません。
他の場所で秘密鍵を探すようにgitに指示するにはどうすればよいですか?
1つのオプションは、ssh-agent
を使用し、ssh-add
にファイル名を指定することです。
例えば:
$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa
ssh config file を使用して実現できます。
最初にconfig
という名前の~/.ssh
フォルダー内にファイルを作成します。次のようなコマンドを使用できます
$ nano ~/.ssh/config
次に、ファイルのコンテンツには、各ホスト名に基づいたキーの場所が必要です。例えば:
Host github.com
IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
IdentityFile ~/myPublicKeyFolder/myHerokuFile
そのため、gitが各ホストにアクセスしようとすると、到達しようとしているgitホストに基づいて、この構成ファイル内のルールに従います。
私はファイル名を~/.ssh/config
に入れると言っていただろうが、おそらくあなたはこのファイルにもアクセスできないだろう。
ssh
に-i keyfile
オプションで使用する秘密鍵を与えることができます。
Gitにsshに渡すオプションを指定する方法
GitTipsページ は、ラッパースクリプトを作成し、GIT_SSH
環境変数でそれを指すことを示しています。
Git構成core.gitProxy
も使用できるようですが、良い例が見つかりませんでした メーリングリストメッセージ はgit:
プロトコル専用であることを示唆しています。
Ssh-agentを使用する
ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone [email protected]:uname/test-git-repo.git'
私のアプリで作業しているプロジェクトの場合、すべてのgitコマンドでシェルスクリプトを吐き出して、外部リポジトリにinit/commit/Pushする必要があります。 〜/ .ssh/configは制限がないため、アプリディレクトリに公開/秘密キーがあります。私はvhallacの答えを使いました。これは、キーを使用するためにシェルスクリプトで行う必要があったものです。
eval `/usr/bin/ssh-agent`
ssh-add /path/to/.ssh/id_rsa
これが誰かを助けることを願って