Tortoise SVN を使用した Windows で SSH 経由の SVN が動作しない

Tortoise SVN を使用した Windows で SSH 経由の SVN が動作しない

私は、(およびその他の必要なユーティリティが)インストールされている FreeBSD マシンに SSH でアクセスできますsvnadmin。svn はバージョン 1.7.9 (r1462340) です。私は Windows 7 x64 で、Tortoise SVN 1.7.7 を使用しています。

私はフォローしましたこの公式ガイドサーバーと Tortoise SVN のセットアップを手伝ってほしいのですが、セットアップに問題があります。

秘密鍵と公開鍵のペアを生成し、~/.ssh/authorized_keysそれぞれサーバーのファイルと Putty 設定に追加しました。PuTTY と秘密鍵を使用してリモート マシンに接続できます。

私も Tortoise SVN を設定して同じことを実行しようとしましたが、次の場所に接続しています:

svn+ssh://myBSDusername@it2svn/somerepo

it2svn名前はどこですか?働くPutty 接続プロファイル、およびsomerepoリポジトリ ルート ( ) 内のリポジトリです~/svnroot/somerepo

発生する問題Tortoise SVN がキーのパスフレーズを要求し、何度正しく入力しても、パスワード ダイアログが 1 ~ 2 秒間閉じられ、その後、再度パスフレーズの入力を求められます。間違っているとは言っていない、パスフレーズを何度も要求し続けます。

わざと間違ったパスフレーズを入力すると、再度入力を求められます即座に正しいパスフレーズを入力するときに発生する 1 ~ 2 秒の遅延はありません。意味不明な文字列を入力しているにもかかわらず、ダイアログには間違っていると表示されません。これは、パスワード プロバイダー側​​のバグかもしれませんが、それでも、正しいパスフレーズが受け入れられない理由が説明されていません。

構成

ファイルの内容は次のとおりですauthorized_keys(キーの実際の内容は削除されています)。

ssh-dss AAA....FuA== myBSDusername@ems

command="svnserve -t -r ~/svnroot --tunnel-user=svnAuthorDude",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-dss AAAA....IFuA== myBSDusername@ems

重要な注意点:ガイドによると、「コマンド」行は次のようになるはずです。

command="svnserve -t -r <ReposRootPath> --tunnel-user=<author>",
     no-port-forwarding,no-agent-forwarding,no-X11-forwarding,
     no-pty ssh-rsa <PublicKey> <Comment>

ssh-keygenしかし、ガイドと同じパラメータを使用して生成したキーは、ssh-dssではなく で始まるため、自分のファイルでは に置き換えられています(キーが RSA キーではなく DSA キーであるためと思われます)。ssh-rsassh-rsadss

答え1

問題は、キー ペアにパスフレーズを使用し、ページェントを使用していなかったことです。

TortoiseSVn が SSH トンネルに接続すると、plink (または TortoisePLink) を使用して複数の個別のリクエストが作成されるようです。このリクエストが発生するたびに SSH キーが必要になるため、ロックを解除する必要があり、パスワード要求が発生します。

キーペアをパスワードで保護していない場合は、パスワードを要求する必要はありません。

TortoiseSVN を使用する前に、pageant がキーをロードするように設定した場合、plink は代わりに、すでにロック解除されキャッシュされたキーを pageant から取得します。この方法では、パスワードで保護されたキーを使用でき、パスワードを繰り返し入力する必要がありません。ただし、pageant にキーを追加するときは、パスワードを 1 回入力する必要があります。

答え2

PuttyGen を使用してキー ペアを再生成し、それを RSA2 キー ペア (古い DSA キーではなく) にしました。また、パスフレーズによる秘密キーの保護をスキップしたところ、すべてが (魔法のように) 動作するようになりました。実際にどの変更で問題が解決したのかは正確にはわかりませんが、これが将来同様の問題に直面する開発者の役に立つことを願っています。

私のユーザーの(関連する)コンテンツは次のとおりです~/.ssh/authorized_keys

ssh-rsa AAAA...Wc= rsa-key-20130529

command="svnserve -t -r /user/rest/of/path/svnroot --tunnel-user=someuser",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA...Wc= andrei

関連情報