我正在尝试使用Ant <scp>
发送一些文件到远程机器,但从服务器错误中获得没有响应
尝试使用详细选项,得到以下响应。
[scp] Authentications that can continue: publickey,keyboard-interactive,password
[scp] Next authentication method: publickey
[scp] Authentications that can continue: keyboard-interactive,password
[scp] Next authentication method: keyboard-interactive
[scp] Authentications that can continue: password
[scp] Next authentication method: password
[scp] Authentication succeeded (password).
[scp] Disconnecting from xx-hostname-xx port 22
[scp] Caught an exception, leaving main loop due to socket closed
代码没有问题,因为它可以在其他主机上正常工作。问题肯定在别的地方。以前有人遇到过这个问题吗?提前感谢。
p。S:我可以用putty
从本地连接到远程机器,没有任何问题。我已经在远程机器上安装了openssh
。
远程系统上是否安装了scp
程序?本地scp实例(我想在本例中是ant
)需要在远程系统上运行scp的另一个副本。如果本地程序在远程系统上运行scp
失败,您将得到此行为。
您的本地scp
客户机(在本例中是ant)将建立到远程主机的ssh连接。通过该连接,它将尝试在远程系统上运行一个名为"scp"的程序。这两个scp实例将进行通信以进行文件传输。因此,远程系统上的程序必须命名为"scp",并且它必须位于ssh会话的命令路径中。我认为WinSCP不符合这些条件。它不会安装名为"scp"或"scp.exe"的程序。至少在我的电脑上,它不会自动安装到我的命令路径中。
简单的测试是建立一个到远程系统的交互式ssh连接,看看是否可以在该会话中运行"scp"。如果你得到一个错误,那么ant
也会得到一个错误。