swift - 在 swift 中与 NMSSH 作斗争;错误-2、-9、-18、

标签 swift ssh nmssh

我正在尝试使用 swift 中的 NMSSH 框架来实现一些东西。

为了在从服务器收集数据时不让我的 UI 卡住,我将所有内容都放在了

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0))

我有时(大约 50% 的概率)会随机得到这些错误之一。我不确定是什么原因导致它们或如何预防它们。看起来是随机出现的,但是是链式的,一旦出错就会持续出错一段时间,当它终于起作用时,它会连续起作用几次。

Socket connection to 192.168.178.27 on port 22 failed with reason -2, trying next address...

Error Domain=libssh2 Code=-18 "Authentication failed (keyboard-interactive)" UserInfo={NSLocalizedDescription=Authentication failed (keyboard-interactive)}

Error Domain=libssh2 Code=-9 "Waiting for password response" UserInfo={NSLocalizedDescription=Waiting for password response}

但最常见

Error Domain=libssh2 Code=-9 "Would block requesting userauth list" UserInfo={NSLocalizedDescription=Would block requesting userauth list}

Error Domain=libssh2 Code=-9 "Would block" UserInfo={NSLocalizedDescription=Would block}

编辑:我粘贴了整个代码 here ,但有点乱。 该函数应该被调用一次,然后检查一组服务器的可用性。

getServers() 返回一个字典数组,每个字典看起来像 ["alias": "iMac", "ip":"mac.local", "port":"22 ", "用户名": "root", "密码": "123"]

最佳答案

尝试使用NSOperationQueue ,它的级别更高,可能能够更好地处理

关于swift - 在 swift 中与 NMSSH 作斗争;错误-2、-9、-18、,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38084097/

相关文章:

ios - 在 Swift 中检查 NSCFBoolean 吗?

linux - 检测传入的 ssh 连接

swift - 找不到 NMSSH 文件

swift - 如何通过 ssh/NMSSH 模拟 key

windows - 如何在 gulp-rsync 和 cygwin 中使用 ssh key

ios - NMSSH for iOS - 监听和解析 channel 中的数据

ios - SWIFT - 核心数据删除关系记录

ios - 动画着色器值

ios - 如何将字母索引放在 UITableview 的右侧

php - phpseclib SSH2不执行Shell脚本