我面临一些独特的问题,不知道如何解决。我正在使用 Netsiebin SSH C++ 库来连接我的服务器。它工作得很好。我使用 SSH2 协议连接到远程主机,使用公钥身份验证,发送来命令也在服务器上执行。
但是当我开始在两者之间使用 SCP 或 rsync“系统(scp 或 rsync)时,问题就出现了。我有必要在两者之间将一些文件上传到服务器,然后再次运行 Netseiben SSH 功能以在服务器上运行该命令文件。但这永远不会发生。每当我使用一些 scp 或 rsync 命令然后执行一些 netseiben 函数时,它都会一直等待并且永远不会返回。
实施示例:
- 初始化 Netseiben
Ne7Sftp子系统_sftp; ne7ssh *_ssh = 新的 ne7ssh();
2.用钥匙连接
channel1 = _ssh->connectWithKey ("serverAddress", 22, "userame", "pub key path");
3.发送命令并读取结果
_ssh->send ("ls\n", channel1))
_ssh->waitFor (channel1, "$", 5)
result = _ssh->read (channel1); //read result
将一些文件放入服务器的系统功能(我认为这是所有人的原因)
system("rsync /home/user/Makefile user@server:~"); system("scp /home/user/file.tgz user@server:~/new");//这个执行
向服务器发送来命令(在这里失败......这个语句永远不会执行)
ssh->send ("mkdir Tester\n", channel1)
如果我没有上述“系统”功能来执行某些命令,它可以正常工作。
是否与端口号有关。因为在建立连接时,我给了端口号 22,如果我没记错,scp 通过端口发生,这可能会导致问题。不过不确定。已经设置了一天。谢谢你的帮助 。