Как справиться с ошибкой 'Password authentication failed' при входе по SFTP в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

SFTP (Secure File Transfer Protocol, Протокол безопасной передачи файлов) - это сетеевой протокол, который обеспечивает безопасный и надежный способ передачи файлов между удаленными системами. Это расширение протокола Secure Shell (SSH), который широко используется для безопасного удаленного доступа к серверам и другим сетевым устройствам. В этом руководстве вы узнаете о SFTP, настройке методов аутентификации и применении лучших практик для обеспечения безопасности соединений SFTP в среде Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/RemoteAccessandNetworkingGroup -.-> linux/ssh("Secure Connecting") linux/RemoteAccessandNetworkingGroup -.-> linux/scp("Secure Copying") linux/RemoteAccessandNetworkingGroup -.-> linux/sftp("Secure File Transferring") linux/RemoteAccessandNetworkingGroup -.-> linux/ftp("File Transferring") linux/RemoteAccessandNetworkingGroup -.-> linux/nc("Networking Utility") linux/PackagesandSoftwaresGroup -.-> linux/openssl("OpenSSL") subgraph Lab Skills linux/ssh -.-> lab-417341{{"Как справиться с ошибкой 'Password authentication failed' при входе по SFTP в Linux"}} linux/scp -.-> lab-417341{{"Как справиться с ошибкой 'Password authentication failed' при входе по SFTP в Linux"}} linux/sftp -.-> lab-417341{{"Как справиться с ошибкой 'Password authentication failed' при входе по SFTP в Linux"}} linux/ftp -.-> lab-417341{{"Как справиться с ошибкой 'Password authentication failed' при входе по SFTP в Linux"}} linux/nc -.-> lab-417341{{"Как справиться с ошибкой 'Password authentication failed' при входе по SFTP в Linux"}} linux/openssl -.-> lab-417341{{"Как справиться с ошибкой 'Password authentication failed' при входе по SFTP в Linux"}} end

Понимание безопасной передачи файлов с использованием SFTP

SFTP, или Secure File Transfer Protocol (Протокол безопасной передачи файлов), представляет собой сетеевой протокол, который обеспечивает безопасный и надежный способ передачи файлов между удаленными системами. Это расширение протокола Secure Shell (SSH), широко используемого для безопасного удаленного доступа к серверам и другим сетевым устройствам.

SFTP имеет несколько преимуществ перед традиционными протоколами передачи файлов, такими как FTP (File Transfer Protocol, Протокол передачи файлов) и FTPS (FTP over SSL/TLS, FTP по протоколу SSL/TLS). Основным преимуществом SFTP является его встроенная безопасность, так как он шифрует весь процесс передачи файлов, обеспечивая конфиденциальность данных и защиту от несанкционированного доступа.

Одним из распространенных сценариев использования SFTP является безопасное обмен файлами между удаленными местами, например, передача конфиденциальных документов, финансовых данных или обновлений программного обеспечения. SFTP также может использоваться для удаленного администрирования системы, когда системные администраторы могут безопасно загружать, скачивать и управлять файлами на удаленных серверах.

Для демонстрации использования SFTP рассмотрим пример сценария, когда вам нужно передать файл с вашего локального компьютера на удаленный сервер Ubuntu 22.04. Предположим, что вы установили SSH - соединение с удаленным сервером. Вы можете использовать следующую команду для запуска сеанса SFTP:

sftp user@remote_server

После подключения вы можете перемещаться по удаленной файловой системе, загружать, скачивать и управлять файлами с помощью следующих команд SFTP:

## Список файлов в текущем каталоге
ls

## Переход в другой каталог
cd /path/to/remote/directory

## Загрузка файла с локального компьютера на удаленный сервер
put local_file.txt

## Скачивание файла с удаленного сервера на локальный компьютер
get remote_file.txt

## Выход из сеанса SFTP
exit

Эти базовые команды SFTP позволяют вам безопасно передавать файлы между вашим локальным компьютером и удаленным сервером. Протокол SFTP обеспечивает шифрование процесса передачи файлов, защищая данные от прослушивания или несанкционированного доступа.

В следующих разделах мы рассмотрим более продвинутые функции SFTP, такие как настройка методов аутентификации и применение лучших практик для обеспечения безопасности соединений SFTP.

Настройка методов аутентификации SFTP

SFTP поддерживает различные методы аутентификации для обеспечения безопасного доступа к удаленным серверам. Два наиболее распространенных метода аутентификации - это аутентификация по паролю и аутентификация с использованием открытого ключа.

Аутентификация по паролю

Аутентификация по паролю - это самый простой метод, при котором пользователь предоставляет имя пользователя и пароль для аутентификации на удаленном сервере. Этот подход подходит для небольших развертываний или при использовании SFTP для периодических передач файлов. Чтобы настроить аутентификацию по паролю, вы можете использовать следующую команду:

sftp user@remote_server

При запросе введите правильное имя пользователя и пароль, чтобы установить соединение SFTP.

Аутентификация с использованием открытого ключа

Аутентификация с использованием открытого ключа - это более безопасный и рекомендуемый метод доступа к SFTP, так как он устраняет необходимость передачи паролей по сети. Этот подход включает в себя генерацию пары открытого и закрытого ключей и настройку удаленного сервера для приема открытого ключа в качестве средства аутентификации.

Чтобы настроить аутентификацию с использованием открытого ключа на системе Ubuntu 22.04, выполните следующие шаги:

  1. Сгенерируйте пару открытого и закрытого ключей с помощью команды ssh-keygen:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
  1. Скопируйте сгенерированный открытый ключ (обычно находится в ~/.ssh/id_rsa.pub) в файл разрешенных ключей на удаленном сервере (обычно ~/.ssh/authorized_keys).

  2. Настройте удаленный сервер для использования аутентификации с использованием открытого ключа, отредактировав файл конфигурации SSH - демона (/etc/ssh/sshd_config) и убедившись, что следующие настройки включены:

PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
  1. Перезапустите SSH - демон, чтобы применить изменения:
sudo systemctl restart sshd

Теперь, когда вы подключаетесь к удаленному серверу с использованием SFTP, вы можете использовать следующую команду для аутентификации с помощью своего закрытого ключа:

sftp -i ~/.ssh/id_rsa user@remote_server

Метод аутентификации с использованием открытого ключа обеспечивает более безопасное и масштабируемое решение, особенно для сред с множеством пользователей или серверов, так как он устраняет необходимость управления и передачи отдельных паролей.

Лучшие практики для обеспечения безопасности соединений SFTP

Для обеспечения безопасности соединений SFTP необходимо применять лучшие практики. Вот несколько ключевых рекомендаций:

Применение сильного шифрования

SFTP по своей природе обеспечивает шифрование процесса передачи файлов, но вы можете дополнительно повысить безопасность, применив сильные алгоритмы шифрования. В файле конфигурации SSH - демона (/etc/ssh/sshd_config) вы можете указать следующие настройки:

Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs [email protected],[email protected],[email protected]

Эти настройки обеспечат то, что ваши соединения SFTP будут использовать наиболее безопасные алгоритмы шифрования и аутентификации сообщений.

Ограничение доступа с помощью брандмауэров

Реализация правил брандмауэра может помочь контролировать и ограничить доступ к вашему SFTP - серверу. На системе Ubuntu 22.04 вы можете использовать инструмент ufw (Uncomplicated Firewall, Простой брандмауэр) для создания правил брандмауэра, которые будут разрешать только трафик SFTP на необходимых портах. Например:

sudo ufw allow 22/tcp  ## Allow SSH/SFTP traffic
sudo ufw enable

Тщательное управление правами доступа к файлам

Убедитесь, что права доступа к файлам на SFTP - сервере настроены правильно, чтобы предотвратить несанкционированный доступ или модификацию. Используйте команду chmod для установки правильных прав доступа к файлам и каталогам, доступным через SFTP.

Включение журнала и мониторинга

Включите полноценный журнал для вашего SFTP - сервера, чтобы отслеживать и аудитить действия пользователей. Вы можете настроить SSH - демон для записи событий, связанных с SFTP, в системные журналы, что может быть полезно для устранения неполадок и анализа безопасности.

Применяя эти лучшие практики, вы можете значительно повысить безопасность ваших соединений SFTP и защитить свои конфиденциальные данные во время передачи файлов.

Заключение

В этом руководстве вы узнали, как использовать SFTP для безопасной передачи файлов между вашим локальным компьютером и удаленным сервером на базе Linux. Вы изучили преимущества SFTP по сравнению с традиционными протоколами передачи файлов, например, его встроенную безопасность за счет шифрования. Вы также научились настраивать методы аутентификации SFTP и применять лучшие практики для обеспечения безопасности соединений SFTP, обеспечивая конфиденциальность и целостность ваших данных в процессе передачи файлов. Освоив SFTP, вы можете повысить безопасность своих рабочих процессов по управлению и обмену удаленными файлами в среде на базе Linux.