Я уже видел этот поток, но он не отвечал на мой вопрос, потому что в него уехали мертвый.
Как в заголовке говорится, когда я вхожу в свой VPS со шпаклевкой, все хорошо работает. Но при соединении с FileZilla через SFTP, я всегда получаю ошибку: Authentication failed, cannot establish connection to the server
(примерно переведенный).
Я использую правильные настройки в FileZilla, потому что я только получил эту ошибку 3 дня назад, и это раньше хорошо работало прежде: SFTP через порт 22.
Вот iptables -L
:
(TL; DR: примите все в и на портах 20, 21 и 22, и пассивные входящие соединения на портах 1024 +),
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ctstate ESTABLISHED /* Allow ftp connections on port 21 */
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ctstate RELATED,ESTABLISHED /* Allow ftp connections on port 20 */
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535 ctstate ESTABLISHED /* Allow passive inbound connections */
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate ESTABLISHED /* Allow ftp connections on port 22 */
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ctstate NEW,ESTABLISHED /* Allow ftp connections on port 21 */
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ctstate ESTABLISHED /* Allow ftp connections on port 20 */
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535 ctstate RELATED,ESTABLISHED /* Allow passive inbound connections */
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate ESTABLISHED /* Allow ftp connections on port 22 */
Я действительно устанавливал это вручную в случае, если это было источником моих проблем, но ничто не изменилось.
Я также установил PasswordAuthentication yes
и LogLevel DEBUG
как предыдущее сообщение, предложенное также, но ничто не изменило ни одного после перезапуска sshd.
Вот то, во что я вхожу /var/log/auth.log
когда я пытаюсь соединиться с FileZilla: буквально ничто связанное с входом в систему SFTP.
Это только содержит материал обо мне выполнение sudo
s для доступа к файлу.
Я не знаю, прибывает ли это из FileZilla потому что auth.log
шоу ничто связанное с соединением SFTP, или это прибывает из sshd конфигурации, просто игнорирующей запросы SFTP.
Я, может казаться, не нахожу, что что-нибудь помогает мне, у Вас есть какие-либо предложения?
Спасибо за Ваше время, читая это.
После просмотра ваших iptables -L. Я думаю, у вас проблема с брандмауэром на стороне сервера.
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate ESTABLISHED
УСТАНОВЛЕННОЕ обычно означает для соединений, которые активны или уже установлены .
Добавьте эту строку в свой iptables
sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
Для простого руководства по iptables Мне нравится это КАК ] и вот объяснение
, или вы можете попробовать
sudo sh -c "iptables-save > /etc/iptables.rules"
sudo iptables -F
проверить свое соединение, после чего вы сможете восстановить свои правила с помощью
iptables-restore < /etc/iptables.rules
Это может быть вызвано эхом или другими командами, которые пишут в консоль во время входа в систему. . Например, я пытался установить переменные среды для сложного процесса сборки и добавил эхо во все мои файлы .profile, включая .bashrc
Все клиенты sftp, которые я пробовал: filezilla, Beyond Compare внезапно перестали работать , но не выдает полезных сообщений об ошибках. Beyond Compare сказал:
Connection failed: Failed to establish SFTP connection (error code is 103)
Failed to establish SFTP connection (error code is 103)
Наконец, корпоративные ИТ-службы попросили меня попробовать WinSCP, который дал полезное сообщение об ошибке:
Received too large (1701737573 B) SFTP packet. Max supported packet size is 1024000 B.
The error is typically caused by message printed from startup script (like .profile).
The message may start with "ente".
Cannot initialize SFTP protocol.
Is the host running a SFTP server?
Это дало мне ключ к разгадке, после удаления строки
echo 'entering .bashrc'
из моего .bashrc
sftp снова работал нормально
В ответе на аналогичный вопрос также упоминается об этом и о том, как вы можете проверить вывод своих сценариев запуска