Я установил FileZilla Pro Server для размещения своего FTP/SFTP-сайта.
Если я попытаюсь войти на SFTP-сервер с помощью клиента FileZilla, то все будет работать нормально.
Но у нас есть другая компания, которая пытается войти в систему, и они получают ошибки.
2022-11-29 13:25:39.207 FTP< ПОДКЛЮЧИТЬСЯ ftp.domain.com:22
processLoginCommand(): Исключение при подключении для InbdProfId: 5915 Имя пользователя: XXXXXXXXXedi
Исключение: com.transentric.agilink.ftp.core.exception.TransentricSSHException: com.sshtools.ssh.SshException: Не удалось обработать обмен ключами [com.sshtools.ssh.SshException] [com.sshtools.ssh.SshException]
Мы не смогли выяснить, почему.
FileZilla имеет некоторые публичные/приватные ключи, которые можно настроить. Я ничего из этого не делаю. Я думал, что, поскольку я могу войти в систему с помощью клиента FileZilla, используя обычное имя пользователя и пароль, это не должно быть необходимым.
Но в FileZilla Server есть раздел открытого ключа. Кто-нибудь знает, когда этот ключ требуется настроить?
решение1
Обмен ключами SSH устанавливает одноразовый ключ сеанса и аутентифицируетсерверчерез егохозяинключ. Это отличается от аутентификации пользователя, где среди вариантов есть ключи пользователя, пароли или Kerberos.
Весь смысл протокола ssh заключается в установлении зашифрованного канала, по которому можно отправлять такую слабую аутентификацию, как пароли, по незащищенным сетям. Сравните это с обеспечением существования зашифрованного сеанса TLS https перед отправкой секретов на веб-сервер.
Алгоритмы обмена ключами со временем обновляются.поскольку исследования в области криптографии делают старые методы небезопасными. Пусть они обновят свое программное обеспечение sftp, чтобы убедиться, что оно использует современные алгоритмы.
При устранении неполадок запустите захват пакетов на сервере для его порта ssh. Wireshark может выполнить детальный анализ протокола ssh, чтобы увидеть, что происходит в пакетах.
Заставьте клиента ssh сказать, какой KEX был предпринят. Например, клиент OpenSSH с более высокой степенью детализации скажет именно то, что у клиента и сервера есть для алгоритмов. ssh -vv
и изучите алгоритмы вокруг событий KEXINIT. Вы не используете OpenSSH, поэтому также прочтите документацию о том, как именно работает согласование в вашей реализации.