我正在开发一个iOS应用程序,它将从用户那里获取一些输入并使用SSH和服务器确认将其发送到服务器。发送工作正常,但无法实现从服务器端的监听。
NMSSHSession *session = [NMSSHSession connectToHost:@"127.0.0.1:22"
withUsername:@"user"];
if (session.isConnected) {
[session authenticateByPassword:@"pass"];
if (session.isAuthorized) {
NSLog(@"Authentication succeeded");
}
}
NSError *error = nil;
NSString *response = [session.channel execute:@"ls -l /var/www/" error:&error];
NSLog(@"List of my sites: %@", response);
BOOL success = [session.channel uploadFile:@"~/index.html" to:@"/var/www/9muses.se/"];
[session disconnect]; //of course I want to keep the connection on all the time.
SO Stream of data through NMSSH上的帖子使用NMSSH shell解析,导致[NMSSH Issue 20] 但是,但在我的情况下它并没有帮助。
我已经看到很少有关于这个库实现的教程和帮助,没有找到一个正确的方向。
答案 0 :(得分:2)
以下来自NMSSH图书馆小组的回复。我刚刚尝试了它并且它正在工作,我将更新与其他查询相关的答案。
NMSSH在GitHub(Issue No. 143)部分也有很多资源可以在这个库上探索。
当通道处于shell模式时,会调用NMSSHChannelDelegate的方法(请参阅startShell :)但方法执行:error:在命令模式下使用channel。 session:didDisconnectWithError:未调用,因为您没有断开会话连接。 请注意,会话将在serverConnect:结束时发布,您应该将会话存储在CustomViewController的属性中。
我的反馈如下所示。
我使用AsyncAPI NMSSH的另一个分支并异步工作来发送或接收数据,特别是发送多个命令现在是无缝的。