34

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

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

4

5 に答える 5

50

これは、 ssh 構成ファイルを使用して実現できます。

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

$ nano ~/.ssh/config

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

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

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

于 2011-04-28T14:33:53.083 に答える
42

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

例えば:

$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa
于 2011-03-16T10:22:00.403 に答える
11

ファイル名を に入れる~/.ssh/configと言いましたが、このファイルにもアクセスできない可能性があります。

sshオプションで使用する秘密鍵を指定でき-i keyfileます。

ssh に渡すオプションを git と言う方法は?

GitTipsページGIT_SSHには、ラッパー スクリプトを作成し、環境変数でそれを指すように記載されています。

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

于 2011-03-16T11:45:46.937 に答える
4

ssh エージェントを使用する

ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone git@bitbucket.org:uname/test-git-repo.git'
于 2014-05-12T06:52:58.073 に答える
1

私が取り組んでいるプロジェクトでは、アプリですべての git コマンドを使用してシェル スクリプトを吐き出し、外部リポジトリに初期化/コミット/プッシュする必要があります。~/.ssh/config は立ち入り禁止なので、アプリ ディレクトリに公開鍵と秘密鍵があります。vhallacの回答を使用しました。これは、キーを使用するためにシェル スクリプトで行う必要があったことです。

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

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

于 2013-03-08T17:16:51.553 に答える