2

解決済み、最後の編集を参照

私はSourceForgeリポジトリを持っており、そこにSSHキーを正しく設定しています。正常に動作します。しかし、TortoiseHGを使用して変更をリポジトリにプッシュすると、PPKのパスワードの入力を求められ続けます(保護しているため)。

私はこのように私のPPKについてMercurialに話します:

[ui] ssh = tortoiseplink.exe -ssh -i "c:\ Users \ my_user \ SSH \ my_user.ppk"

しかし、それはPPKのパスワードで私を悩ませ続けます。Mercurial用のKeyRing拡張機能について知っていますが、PPKで機能しますか?

それで...

TortoiseHGを備えたこのPageantツールがあります。どうやら、次のように-agentを指定してTortoiseHGに使用するように指示しているようです。

[ui] ssh = tortoiseplink.exe -ssh -i "c:\ Users \ my_user \ SSH \ my_user.ppk" -agent

私はPageantにキーを追加しましたが、TortoiseHGと同期すると、PageantにPPKを追加したときにすでに述べたにもかかわらず、PPKのパスフレーズを要求されます

そして私を悩ませているもう一つのことは、ページェントがプログラムの再起動時にすべてのキーを「忘れる」ことです。だからそれはちょっと役に立たない。

そのKeyRing拡張機能を使用してTortoiseHGにPPKを追加し、パスワードをどこかに保存しておく方法はありますか?

これを解決する方法がない場合は、保護されていないPPKを使用するだけだと思いますが、それだけです...

後で編集:

これは、上記のように構成されたTortoiseHG同期ツールを介してプッシュしようとしたときに得られるデバッグ出力です。

%hg --repository C:\ Projects \ MyProject push --debug ssh://echysttas@hg.code.sf.net/p/myproject/code

pushing to ssh://echysttas@hg.code.sf.net/p/myproject/code

running "c:\Program Files\TortoiseHg\TortoisePlink.exe" -agent echysttas@hg.code.sf.net "hg -R p/myproject/code serve --stdio"

sending hello command

sending between command

ここでパスワードリクエストを受け取りますが、パスワードを繰り返したくないのでキャンセルします

リモートhgからの適切な応答がありません[コマンドがコード255MonNov 1920:43:142012を返しました]

後で編集2:

TortoisePlink.exeの代わりにplink.exeを使用している例があることに気づきました。そうですね、plink.exe(Putty Webサイトから直接)も試してみました。これは有望な結果をもたらしました...

sending hello command

sending between command

remote: Passphrase for key "rsa-key-20121118":

remote: Passphrase for key "rsa-key-20121118":

しかし、その後、ここで立ち往生しました。

後で編集3

驚くほど面白い発見::-D。

昇格していないExplorerからTortoiseHGSyncを呼び出していたためにスタックしましたが、昇格したTotalCommanderからPageantを起動しました。Windows 7でUACを使用していますが、それが問題の原因でした。

Pageantがadmin-rightsTotalCommanderから実行されている場合は、そこからTrtoiseHGSyncも起動する必要があります。そうすれば、それは機能します!昇格されていないエクスプローラーからPageantを起動し、そこから同期を実行した場合にも機能します。

終わり!

怠惰なアナグマあなたは怠惰なものでしたが、あなたは興味を示し、私を大いに助けてくれたので、私はまだあなたに答えを与えています。「それは私のマシンで動作する」というのは本当の答えではありませんが、それは確かに私に考えさせられました、そしてあなたの多くの言葉と説明はその輝かしい緑色のチェックマークの価値がありますね?:D。

4

1 に答える 1

2

さて、私はもう一度パスワードについて尋ねられることなくページェントで働くことができます

私のsshライン

ssh = "c:\Program Files\_Tools\TortoiseHg\TortoisePlink.exe"

(ロードされた秘密鍵/ PuTTY-User-Key-File /を使用して)Pageantを実行すると、再認証なしでリポジトリと通信できるようになります。

注1:キーリングは、あなたのケースではまったく役に立ちません。pure-ssh接続(sshまたはplink)を使用してページェント機能をデバッグします。

注2:キー(パスワードのみが必要)でPageantを起動するには、拡張コマンドラインを使用できます

Pageantコマンドラインで指定した場合、Pageantは起動時に1つ以上の秘密鍵を自動的にロードできます。コマンドラインは次のようになります。

C:\PuTTY\pageant.exe d:\main.ppk d:\secondary.ppk

キーが暗号化されて保存されている場合、Pageantは起動時にパスフレーズを要求します。

Pageantがすでに実行されている場合、この構文は既存のPageantにキーをロードします。

アドオン

TortoiseHG 2.6(XP SP3 x86)、 Mercurialリポジトリの現在のssh設定でプッシュしてみました

c:\TEMP\Fiver>hg push sf
pushing to ssh://bigbadger@hg.code.sf.net/u/bigbadger/code
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 7 changesets with 39 changes to 19 files
remote: <Repository /hg/u/bigbadger/code> refresh queued.

ローカルリポジトリhgrc

[paths]
...
sf = ssh://bigbadger@hg.code.sf.net/u/bigbadger/code

私のプロフィールで、ページェントにロードされた秘密鍵、SFに登録された公開鍵

Mercurial.ini(関連部分)

[ui]
merge = <irrelevant>
username = <irrelevant>
ssh = "c:\Program Files\_Tools\TortoiseHg\TortoisePlink.exe"

(TortoisePlinkの追加の引数はないことに注意してください)

特別なことは何も しませんでした

ログ出力付きの純粋なTHGプッシュのスクリーンショット

押す

SF-SSHの良好なplink+pageantセッションのログ

>Plink.exe -v -agent bigbadger@hg.code.sf.net
Looking up host "hg.code.sf.net"
Connecting to 216.34.181.156 port 22
Server version: SSH-2.0-OpenSSH_5.3
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 2048 86:7b:1b:12:85:35:8a:b7:98:b6:d2:97:5e:96:58:1d
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "bigbadger".
Trying Pageant key #0
Authenticating with public key "github/lazybadger" from agent
Sending Pageant's response
Access granted
Opened channel for session
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command
Last login: Tue Nov 20 03:20:48 2012 from 85.249.33.17
Server sent command exit status 1
Disconnected: All channels closed

Welcome to hg.sourceforge.net
This is a restricted Shell Account
You cannot execute anything here.
于 2012-11-18T19:40:02.453 に答える