繁体   English   中英

Windows TortoiseHg plink在克隆/推送后挂起

[英]Windows TortoiseHg plink hangs AFTER clone/push

我们有一个全Windows网络,我正在尝试通过SSH获取Tortoise Mercurial,以便为我们的小团队使用中央回购。 我可以让它在大多数情况下工作,但plink / tortoiseplink挂起后成功执行命令(克隆/推送等)

我在Widnows 2008 rc2服务器和Tortoise Hg上建立了Freesshd。 我使用PuttyGen在服务器上生成了公钥/私钥(在客户端上生成了问题)。 私钥我复制到我的客户端并更新了mercurial.ini。 公钥我重命名并更新了Freesshd以指向包含公钥的文件夹。 在客户端,我已经使用Pageant注册了我的私钥,在Putty中创建了一个会话,并将其指向我的私钥并保存。 当我使用Putty进行初始连接时,事情开始变得奇怪。

我收到用户名的命令提示符(没有提示输入密码),并且在命令提示符下(身份验证后),我无法输入。 也许是Putty的一个问题。 我将尝试使用Tortoise(TortoisePlink.exe)。

在mercurial.ini中我有:[ui] ssh =“C:\\ putty \\ TortoisePlink.exe”-ssh -2 -batch -C -i C:\\ Users \\ Jude.ssh \\ JudePrivate.ppk

如果我使用控制台,我可以克隆回购,但它会在做完所有事情后挂起。 使用--debug,最后一行是:3个文件更新,O文件合并,0个文件删除,0个文件未解析

当文件确实得到克隆时,我期望的那种。 但后来我什么也做不了。 Ctrl+C什么都不做,我必须杀死进程。 (顺便说一句,然后在命令提示符下显示Ctrl ^ C以及键盘糖化的其余部分)。

repo被克隆,文件的正确版本出现但控制台窗口没有关闭或让我重新控制。

如果我尝试使用Hg Workbench,我会遇到类似的问题。 我可以克隆和推送 - 它实际上发生 - 但使用GUI我得到:

% hg --repository C:\repositories\HgTest push --debug          
ssh://Jude@dev01:22/d:/repositories/hgtest
pushing to ssh://Jude@dev01:22/d:/repositories/hgtest
running "C:\putty\TortoisePlink.exe" -ssh -2 -batch -C -i
C:\Users\Jude\.ssh\JudePrivate.ppk Jude@dev01 -P 22 "hg -R d:/repositories/hgtest serve --stdio"
sending hello command
sending between command
remote: 145
remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
remote: 1
query 1; heads
sending batch command
searching for changes
all local heads known remotely
no changes found
sending listkeys command
checking for updated bookmarks
sending listkeys command

Workbench顶部的绿色条表示“推送到ssh:// Jude @ dev01:22 / d:/ repositories / hgtest ...”,底部的状态栏也是如此。 我整个周末都这样离开了,当我回来时它仍然像它一样。 我仍然可以使用Hg Workbench(种类),但不能使用pull / push / clone。 尝试关闭Hg Workbench导致消息(在状态栏中) Sync tab cannot exit ,我无法关闭应用程序。 杀死TortoisePlink.exe(或Plink.exe,无论我尝试哪个)释放我可以使用它的应用程序或正常关闭它。

最初我认为这是TortoiseHg或TortoisePlink的一个问题,但从Putty网站下载Plink会导致相同的问题。

澄清:
- 我可以通过SSH推送/克隆,没有密码提示
- 我可以通过命令行或Hg Workbench来完成
- 无论我使用哪种方法(或Plink.exe或TortoisePlink.exe),都需要手动杀死该进程。

使用的软件+版本
客户端(Windows Vista 32位)
Tortoise Hg 2.3(merc 2.1,Python 2.6.6)
Plink 0.62
服务器 - (Windows 2008服务器rc2)
FreeSSHd 1.2.4
与上面相同的乌龟

大量的搜索没有任何用处。 我已经尝试过所有我见过的建议(即使有些相关),但无济于事。 由于实际功能正常,我假设我已经正确设置了密钥,SSH,Tortoise等。

我希望我在某个地方错过了一个简单的选项,但我怀疑它正在等待某种用户提示。

手指交叉:)

===更新===

我找到了Putty的事件日志(右键点击putty控制台窗口,瞧,“事件日志”选项。一旦我加载了会话并点击打开,我得到控制台窗口并login as: prompt。输入后我名字和回击,我得到:

Reading private key file "C:\Users\Jude\.ssh\JudePrivate.ppk"
Pageant is running. Requesting keys.
Failed to get reply from Pageant
Offered public key
Offer of public key accepted
Sent public key signature
Access granted
Opened channel for session
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command

并且在这个阶段我将命令提示符更改为c:\\Windows\\system32>并且无法键入任何内容。

===更新2 ===

使用plink我在控制台上执行以下操作:

plink -v -ssh Jude@dev01 "cmd /c echo hello"

并且,以及所有信息-v给出,我看到hello然后Server sent command exist status 0Disconnected: All channels closed 这就是我所期待的。

如果我使用tortoiseplink,`tortoiseplink-v -ssh Jude @ dev01“cmd / c echo hello”'我看不到任何返回或写入窗口,我再次收到命令提示符。

这意味着SSH与别名(dev01)一样工作。 但是在使用TortoisePlink时我应该看到什么吗?

键入hg clone --verbose -- ssh://Jude@dev01/d:/repositories/hgtest C:\\repositories\\test再次获取文件,将它们复制到测试文件夹但不返回命令提示符。 最后一行是3 files updated...

===更新3 ===

似乎hg.exe是由FreeSSHd在服务器上生成的,它确实关闭/完成。 当hg.exe进程在服务器上被终止时,客户端(控制台/克隆对话框)会正常运行并完成命令。

澄清:

  1. 我在命令行或HG Workbench中使用clone并指定repo别名
  2. 根据日志一切都很好,我已通过身份验证,文件通过SSH下拉并复制到我在1中指定的本地仓库
  3. 此时它会挂起 - 无论是控制台还是HG Workbench,还是右键单击/克隆选项。
  4. 在服务器上使用Process Explorer允许我杀死由FreeSSHd服务生成的hg.exe
  5. 一旦我这样做,客户说“命令已成功完成”。

所以,现在看来服务器上的Tortoise Hg存在问题。 也许FreeSSHd和Tortoise在一起玩不好......我想我会重新安装一切......

===更新4 ===

看来我不是唯一有这个问题的人。 我之前在SO上发现了这个,但当时没有相关性。 但是,现在我遇到了同样的问题: 在Windows上的ssh客户端和服务器上的Mercurial这个问题没有解决(两年前)所以我应该保持这个问题吗?

  1. 首先 - 阅读文档!

     hg help urls Valid URLs are of the form: .... ssh://[user@]host[:port]/[path][#revision] 
  2. Plink使用-l选项作为用户名

  3. 使用纯TortoisePlink调试成功的ssh-connect(和可用路径),删除所有不必要的选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM