44

Windows XP (msysGit 1.7.11、TortoiseGit 1.7.14) で git 環境をセットアップし、次の点を達成しようとしています:

  • デフォルトの 22 以外のポートでの ssh 接続
  • ssh-agent によって処理される ssh 認証

だから私は~/.ssh/configファイルを作成します:

Host gitbox
   User gitolite
   Hostname XX.XX.XX.XX
   Port 154
   PreferredAuthentications publickey
   IdentityFile "/c/Documents and Settings/kraymer/.ssh/id_rsa"

git bash CLI を使用すると、すべてが意図したとおりに機能します。

私は TortoiseGit に苦労しています。
まず、Plink を使用して TortoiseGit をインストールし、Pageant を使用して ssh 秘密鍵をロードしました。自動認証 (Pageant) は機能しましたが、TortoiseGit がgitolite@gitbox/repo.gitとしてフォーマットされた git リポジトリ URL を認識しないため、セットアップは失敗しました。

次に、openssh クライアントを使用して TortoiseGit をインストールすることにしました。これにより、構成ファイルを ssh クライアントで読み取ることができ、git CLI セットアップを模倣することができます。
TortoiseGit の設定で、 msys git に同梱されているssh.exeを ssh クライアントとして選択しました。
を実行するgit pullと、リモート URL が解決されるようになりましたが、ssh-agent 自動認証が行われることを期待しているときに、パスフレーズ パスワードが求められます。

https://dl.dropbox.com/u/1026715/tortoisegit.png

TortoiseGit を ssh-agent で動作させることは可能ですか?
または、TortoiseGit (Plink) に.ssh/configを認識させますか?

編集#1

@VonC のアドバイスに従って、 $HOME 変数を構成しました。[ TortoiseGit で環境変数を表示
] をクリックすると、次のようになります。

 HOME=C:\Documents and Settings\kraymer  
 HOMEDRIVE=C: 
 HOMEPATH=\Documents and Settings\kraymer 

ただし、git pullパスフレーズを入力する必要があります。

4

9 に答える 9

119

微調整は必要ありません。

TortoiseGit が git 自体で使用されるのと同じ ssh クライアントを指すようにするだけです。スクリーンショットを参照してください。

ここに画像の説明を入力

コメントで Aleksey Kontsevich が言及したように、これC:\Program Files\Git\usr\bin\ssh.exeは Git の最新バージョンにある必要があります。

于 2015-10-25T10:28:53.787 に答える
4

まず、Plink を使用して TortoiseGit をインストールし、Pageant を使用して ssh 秘密鍵をロードしました。自動認証 (Pageant) は機能しましたが、TortoiseGit が gitolite@gitbox/repo.git 形式の git リポジトリ URL を認識しないため、セットアップは失敗しました。

最後に、sshエイリアスと同じ名前のPuTTYセッションを作成する回避策を見つけました(つまり、問題のgitbox)。このようにして、CLI の
ようにクローンを作成でき、構文は TortoiseGit によって正しく処理されます。 git clone gitbox/monrepoorigin

于 2013-01-09T16:51:38.543 に答える
4

1) シグウィン

次の記事で説明されている方法を使用してください: https://help.github.com/articles/working-with-ssh-key-passphrases

パスワードは、cygwin セッションの起動時に 1 回だけ要求されます。!!! cygwin セッションを終了する前に、ssh-agent プロセスを強制終了することを忘れないでください (プロセス PID の検索には ps を使用し、-9 を強制終了します)。

cygwin は何らかの理由で Wi​​ndows 環境で外部から開始されたプロセスを認識しないため、cygwin には別のアプローチを使用しています。

2, 3) MsysGit、TortoiseGit

便利なリンク: http://dogbiscuit.org/mdub/weblog/Tech/WindowsSshAgent

MsysGit をインストールします。TortoiseGit をインストールします (インストール中に plink の代わりに openssh をチェックします)。!!! システム変数を確認してください。GIT_SSH 変数が存在する場合は削除します。

TortoiseGit->設定->一般に移動します

Git exe パスを /bin に設定 外部 dll パスを /mingw/bin に設定

TortoiseGit->Settings->Network に移動し、SSH クライアント プロパティを /bin/ssh.exe に設定します。

システム変数 SSH_AUTH_SOCKS=C:\temp.ssh-socket を定義します

cmd.exe を起動し、次のコマンドを実行します (MsysGit をインストールしたため、次のコマンドはすべて cmd でアクセスできます - /bin がシステム PATH 変数に追加されます)。

# following command is required to execute for avoiding Address already bind message when ssh-agen is not started yet but .ssh-socket exists after previous agent session
rm "%SSH_AUTH_SOCK%"

# Starting ssh-agent
ssh-agent -a "%SSH_AUTH_SOCK%"

# Adding our openssh key
ssh-add "%USERPROFILE%\.ssh\id_rsa"

# Type password for your key

それでおしまい。その瞬間から、パスフレーズを要求することなく、TortoiseGit および MsysGit から git push、git pull を実行できます。

ssh-agent が不要になったら、Windows タスク マネージャーから強制終了できます。

于 2013-02-16T17:48:09.393 に答える
2

Make sure to launch your TortoiseGit in an environment where HOME is defined, and reference the parent directory of .ssh.
This is important since, on Windows, HOME isn't defined by default.

See as an example: "Auth fails on Windows XP with git and tortoisegit".
(Other possible sources: "How to I tell Git for Windows where to find my private RSA key?")

于 2012-11-23T07:35:49.210 に答える
2

ここでの説明は少し古くなっているため、解決策を投稿することにしました。

最近では一般的な Windows 10 で Git Bash と TortoiseGit 2.8.0 を使用しています。

以前の投稿で説明したようにssh.exe、SSH クライアントとして設定します。Settings->Network

前のコメントで説明したように、次のコマンドでスクリプトを作成しました。システムが自動的に行わない場合に備えて、HOME 環境変数を設定することもできます。ホームがドライブ H:\ にあると仮定すると、次の行を追加できます。

SETX HOME /h
CALL "C:\Program Files\Git\cmd\start-ssh-agent.cmd"
SETX SSH_AUTH_SOCK "%SSH_AUTH_SOCK%"
SETX SSH_AGENT_PID "%SSH_AGENT_PID%"

Win logo+を使用してスクリプトをR shell:startupスタートアップ フォルダーに追加しました。または、スクリプトをレジストリに追加して、他のプロセスの前にスクリプトが実行されるようにすることもできます。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

入力exitしてコンソールを閉じ、将来のプロセスのために変数を設定できるようにしてください。

于 2019-03-20T16:28:46.537 に答える