Я использую библиотеку NMSSH в своем приложении для iOS, чтобы открыть соединение с сервером, загрузить файл JSON и сохранить его в локальном каталоге.
Я попробовал два разных sFTP-сервера, чтобы открыть соединение. Один из них — мой собственный сервер, а другой — фиктивный сервер, который я нашел в Интернете. Теперь проблема в том, что я могу успешно открыть соединение и загрузить файл с фиктивного сервера, найденного в Интернете. (скриншот прилагается.)
Журналы:
Учетные данные:
let host = "test.rebex.net" пусть порт = 22 пусть пользователь = "демо" пусть пароль = «пароль» пусть fileToDownload = "readme.txt" 2023-07-26 16:33:35.514732+0500 FTP[42664:5996676] NMSSH: libssh2 (v1.8.0) инициализирован 2023-07-26 16:33:35.514788+0500 FTP[42664:5996676] NMSSH: начать разрешение test.rebex.net 2023-07-26 16:33:35.937435+0500 FTP[42664:5996672] NMSSH: подключение сокета к 194.108.117.16 на порту 22 успешно 2023-07-26 16:33:36.984023+0500 FTP[42664:5996672] NMSSH: баннер удаленного хоста — SSH-2.0-RebexSSH_5.0.8466.0 2023-07-26 16:33:36.984372+0500 FTP[42664:5996672] NMSSH: отпечаток хоста: 03:61:C4:98:F1:FF:7D:23:97:51:07:13:88: В8:С5:55 2023-07-26 16:33:36.984533+0500 FTP[42664:5996672] NMSSH: сеанс SSH начался 2023-07-26 16:33:37.148409+0500 FTP [42664:5996672] NMSSH: список аутентификации пользователя: пароль, интерактивная клавиатура, открытый ключ 2023-07-26 16:33:37.298370+0500 FTP[42664:5996672] NMSSH: аутентификация по паролю прошла успешно. Необязательный("Добро пожаловать,\r\n\r\nВы подключены к FTP или SFTP-серверу, используемому в целях тестирования с помощью Rebex FTP/SSL или образца кода Rebex SFTP.\r\nРазрешен доступ только для чтения, а скорость загрузки по FTP ограничена. ограничено 16 КБ/с.\r\n\r\nДля получения информации о Rebex FTP/SSL, Rebex SFTP и других компонентах Rebex .NET посетите наш веб-сайт https://www.rebex.net/\r\n\r\ nДля обратной связи и поддержки обращайтесь по адресу support@rebex.net\r\n\r\nСпасибо!\r\n") Когда я пытаюсь открыть соединение со своим сервером, я получаю следующую ошибку:
2023-07-26 16:36:47.112351+0500 FTP[42687:5998750] NMSSH: libssh2 (v1.8.0) инициализирован 2023-07-26 16:36:47.112440+0500 FTP[42687:5998750] NMSSH: разрешение запуска 52.6.162.79 2023-07-26 16:36:47.372795+0500 FTP[42687:5998755] NMSSH: подключение сокета к 52.6.162.79 на порту 22 успешное 2023-07-26 16:36:48.017514+0500 FTP[42687:5998755] NMSSH: сбой при установке сеанса SSH 2023-07-26 16:36:48.017645+0500 FTP[42687:5998755] НМСШ: отключено Соединение не удалось. Фрагмент кода для открытия соединения с сервером указан ниже:
func readSFTPFile() { let session = NMSSHSession (хост: хост, порт: порт и имя пользователя: пользователь) сеанс.connect() если session.isConnected { session.authenticate(byPassword: пароль) если session.isAuthorized { пусть sftp = NMSFTP.connect (с: сеансом) если sftp != ноль { пусть RemotePath = fileToDownload let localPath = URL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("Загрузки/\(fileToDownload)") пусть fileData = sftp.contents(atPath: fileToDownload) let StrValue = String (данные: fileData!, кодировка: String.Encoding.utf8) печать (StrValue) sftp.disconnect() } еще { print("Ошибка подключения к SFTP-серверу.") } } еще { print("Аутентификация не удалась.") } сеанс.отключить() } еще { print("Соединение не удалось.") } } Я очень озадачен, почему соединение с фиктивным сервером работает нормально, а не с моим собственным сервером. Нужно ли внести какие-либо изменения в конфигурацию на стороне сервера, чтобы Iphone мог подключиться к серверу?
Некоторая информация о фиктивном сервере:
https://test.rebex.net

Мобильная версия