- Аутентификация на основе ключей
- Основы обслуживания файлов с использованием sftp
- Что такое sftp?
- Аутентификация на основе ssh2-ключей
- Ftp – легко
- Ftp – легко и безопасно
- Ftp (незащищенный)
- Scp vs. sftp
- Sftp vs. ftps
- Sftp-клиенты
- Защищенный обмен данными
- Как передавать файлы по sftp?
- Как подключиться к серверу по sftp?
- Команды для навигации по sftp
- Передача удалённых файлов с сервера в локальную систему
- Передача файлов с локального компьютера на удалённый сервер
- Пояснения:1 – mcedit – мой любимый текстовый редактор.2 – системные учётные записи – читать как: созданные в системе пользователи.3 – 1000 – всего лишь пример идентификатора группы sites.
- Протоколы ftp, scp, sftp, ftps: какая разница?
- Реализация sftp в системах windows
- Редактирование текстовых файлов
- Создается пользователь, задаётся пароль, домашний каталог по умолчанию — /home/test …
- Список полезных команд sftp
- Тестируем sftp подключение с помощью winscp
- Требования
- Удаление службы win32 openssh
- Установка win32 openssh в windows 10 1803 /windows server 2021
- Заключение
Аутентификация на основе ключей
SFTP предоставляет два варианта аутентификации пользователя при подключении к облачному серверу:
- пароль;
- SSH-ключи.
Чтобы узнать о преимуществах авторизации пользователей с помощью SSH-ключей, читайте статью «Создание SSH-ключей для подключения к VPS с помощью PuTTY».
Основы обслуживания файлов с использованием sftp
SFTP также позволяет управлять каталогами и файлами с помощью определённых команд.
Чтобы проверить дисковое пространство удалённого сервера в гигабайтах, используйте функцию df следующим образом:
df -h
Вот пример вывода:
Что такое sftp?
SFTP, или SSH File Transfer Protocol — более безопасный способ передачи файлов. Используя протокол SSH, он поддерживает шифрование и другие методы безопасности для лучшей защиты передачи файлов. Это единственный безопасный протокол, который защищает от атак на любом этапе процесса передачи данных.
Во время передачи файлов все данные разделяются на пакеты и отправляются через единое безопасное соединение.
SFTP шифрует конфиденциальную информацию при передаче между клиентом и сервером и делает её нечитаемой. Другими словами, исходное содержимое (открытый текст) заменяется бессвязной строкой символов (зашифрованным текстом).
Только получатель с требуемым ключом дешифрования сможет увидеть исходный контент. Это предотвращает любой несанкционированный доступ к данным во время передачи файлов.
Обычный протокол передачи файлов (FTP) имеет два разных канала для обмена данными — командный канал и канал даных. SFTP имеет только один зашифрованный канал, по которому данные передаются зашифрованными, отформатированными пакетами.
Аутентификация на основе ssh2-ключей
В диалоге настроек FileZilla есть отдельная встроенная страница управления ключами, что позволяет сохранить открытый (SSH) ключ и одновременно защитить и автоматизировать процесс подключения к удаленному серверу.
Ftp – легко
Дано:
Ftp – легко и безопасно
Дано:
Ftp (незащищенный)
Из всех вариантов передачи файлов FTP – самый небезопасный, потому никогда не следует подключаться к удаленному серверу через FTP. Протоколы SCP и SFTP столь же просты в использовании, но обеспечивают гораздо более высокий уровень защиты. Кроме того, FTP требует установки FTP-сервера (например, vsFTP или ProFTP)
Scp vs. sftp
Учитывая, что и SCP, и SFTP при подключении к другому компьютеру используют протокол SSH, в отношении безопасности оба эти протокола равны. Впрочем, SFTP немного более эффективен, так как позволяет возобновлять передачу файлов, которая прервалась из-за проблем со связью.
Sftp vs. ftps
SFTP не следует путать с FTPS, потому что эти два метода несовместимы друг с другом. В то время как FTPS может быть столь же безопасным, как и SFTP, он все же требует дополнительных действий для развертывания – создания сертификата SSL.
Sftp-клиенты
На сегодня существует несколько высококачественных SFTP-клиентов: Cyberduck, Filezilla или WinSCP – вот только некоторые из них. Данное руководство охватывает только Filezilla – FTP-клиента с открытым исходным кодом для систем Windows, Mac OS X и Linux.
Обратите внимание: на официальном сайте проекта (filezilla-project.org) можно найти вики-документацию и форум поддержки.
Защищенный обмен данными
Наиболее распространенными методами защищенного обмена информацией между двумя компьютерами являются криптографические протоколы:
- Secure Shell (SSH)
- Transport Layer Security (TLS), а также его предшественник Secure Sockets Layer (SSL).
Эти криптографические туннельные протоколы разработаны для обеспечения безопасного конфиденциального обмена данными и связи по всей сети (особенно в интернете). Используемые в них технологии шифрования очень надежны, при качественных настройках их практически невозможно взломать. Но, несмотря на все свои сходства, эти протоколы имеют ряд существенных различий, которые выходят за рамки данной статьи.
На сегодня Unix-подобные операционные системы (как Mac OS X и Linux) по умолчанию используют OpenSSH. Таким образом, программы или подсистемы, основанные на протоколе SSH, будут работать «из коробки», то есть автоматически, без необходимости выполнять дополнительные установки, вносить существенные поправки, создавать SSL-сертификаты для определенных видов безопасной передачи данных через TLS/SSL.
Как передавать файлы по sftp?
Здесь мы покажем вам, как передавать удалённые файлы в локальную систему и наоборот с помощью SFTP.
Как подключиться к серверу по sftp?
SFTP — это подсистема SSH. Следовательно, этот протокол поддерживает все методы аутентификации SSH. Хотя настроить и использовать аутентификацию по паролю намного проще, вход в систему с помощью ключей SSH по SFTP без пароля намного безопаснее.
Подробную информацию о том, как настроить ключи SSH можно найти в этом руководстве. Когда вы будете готовы, выполните следующие действия, чтобы подключиться по SFTP:
Команды для навигации по sftp
Некоторые команды можно использовать для более эффективной навигации по удалённым и локальным серверам с помощью SFTP. Они похожи на те, которые вы бы использовали в командной строке Linux.
Например, команда pwd всегда поможет узнать, в каком рабочем каталоге вы находитесь.
sftp> pwd Remote directory: /RemoteDirectory
или
sftp> lpwd Local directory: /LocalDirectory
Вы также можете вывести список файлов и каталогов, которые вы используете для удалённого каталога:
ls
Аналогично для локального рабочего каталога:
lls
Вывод будет выглядеть примерно так:
Pictures Templates Media Text.txt Documents
Чтобы переключиться из одного удалённого рабочего каталога на другой локальный рабочий каталог, введите следующие команды:
cd name_of_directory lcd name_of_directory
Наконец, используйте ! и команды exit, чтобы вернуться в локальную оболочку и выйти из SFTP.
Передача удалённых файлов с сервера в локальную систему
Для начала давайте проверим, какие локальный и удалённый рабочие каталоги мы используем. Для этого воспользуемся следующими командами SFTP:
sftp> lpwd Local directory: /LocalDirectory sftp> pwd Remote directory: /RemoteDirectory
Теперь давайте посмотрим, как передать файл с удалённого сервера на локальный компьютер с помощью команды get. Вот основной синтаксис команды get:
get /RemoteDirectory/filename.txt
Например, чтобы скопировать файл /etc/xinetd.conf с удалённого сервера на локальный компьютер, вы должны использовать команду:
get /etc/xinetd.conf
Передача файлов с локального компьютера на удалённый сервер
Чтобы скопировать файл с локального компьютера на удалённый сервер, мы снова воспользуемся командой get. В этом случае синтаксис команды get будет следующим:
get file.txt /RemoteDirectory
Чтобы переместить файл example.txt с локальной машины на удалённую, введите следующую команду:
Пояснения:1 – mcedit – мой любимый текстовый редактор.2 – системные учётные записи – читать как: созданные в системе пользователи.3 – 1000 – всего лишь пример идентификатора группы sites.
Mission Complete & Game Over
Протоколы ftp, scp, sftp, ftps: какая разница?
При необходимости выгрузить или загрузить файлы с VPS в режиме реального времени можно использовать:
Проведем краткий обзор и сравнение данных протоколов.
Реализация sftp в системах windows
Исторически в операционных системах Windows отсутствуют встроенные средства для организации защищенного SFTP сервера. Для этих целей обычно использовались открытые или коммерческие решения, к примеру, Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и пр.
Рассмотрим процесс настройки SFTP сервера в Windows 10 и Windows Server 2021/2021 R2 с помощью пакета Win32-OpenSSH.
Редактирование текстовых файлов
При администрировании VPS неизбежно возникает необходимость отредактировать программные (текстовые) файлы. FileZilla не имеет встроенного текстового редактора, что дает пользователям свободу работать с любым текстовым редактором. Например, среди пользователей Windows популярным является редактор Notepad , потому что он прост в использовании и совместим со многими современными языками программирования.
Как правило, FileZilla использует редактор локальной системы по умолчанию. Чтобы использовать Notepad для редактирования программных файлов HTML, XML, Python, CSS, PHP и т.п., но при этом не устанавливать его в качестве редактора по умолчанию, выполните следующие действия:
- На главном экране FileZilla нажмите Edit и выберите Settings.
- В левой части окна настроек найдите и выделите File editing.
- Затем установите переключатель Use custom editor и нажмите на кнопку Browse.
- Найдите исполняемый файл нужного редактора (в Windows это файлы .exe), дважды щелкните на нем, и нажмите кнопку OK, чтобы сохранить изменения и закрыть окно Settings.
Tags:
Создается пользователь, задаётся пароль, домашний каталог по умолчанию — /home/test …
Теперь можно попробовать соединиться с сервером, и передать файлы. Предварительно заходим в логи, что бы наблюдать за процессом…
Список полезных команд sftp
Если вам нужна шпаргалка, вот список всех доступных команд SFTP. Вы можете найти этот список самостоятельно, просто введя команду вызова справки help или ? — обе предложат один и тот же результат.
Тестируем sftp подключение с помощью winscp
Попробуем подключиться к поднятому нами SSH серверу по протоколу SFTP. Для этих целей воспользуемся свободным клиентом WinSCP.
В окне настройки подключения выберите протокол передачи файлов SFTP, укажите имя сервера и данные учетной записи Windows, под которой осуществляется подключение (возможно также настроить авторизацию по ключам).При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.
При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.
Если все настроено правильно, клиент должен подключиться к SFTP серверу и отобразить список файлов в домашнем каталоге пользователя (по умолчанию каталог с профилем пользователя).
С помощью привычного интерфейса файлового менеджера можно безопасно копировать файлы между сервером и клиентом. Передача файлов будет осуществляться по защищённому протоколу SFTP.
Требования
На данном этапе понадобится пара SSH-ключей; чтобы создать SSH-ключи, обратитесь к руководствам:
Получив пару ключей, следуйте дальнейшим инструкциям руководства.
Откройте клиент FileZilla.
В верхней части главного экрана нажмите на Edit и выберите Settings.
В левой части меню разверните раздел Connection и выберите SFTP.
Затем нажмите кнопку Add keyfile… и, просмотрев каталоги на локальном компьютере, выберите файл закрытого ключа.
Теперь в верхней части главного экрана FileZilla нажмите на File и выберите Site Manager.
В завершение нажмите на кнопку New Site в левой части Site Manager и введите уникальное имя в My Sites, что в дальнейшем позволит легко определить этот конкретный удаленный сервер.
Теперь перейдите на вкладку General и заполните поля Host (укажите IP-адрес или FQDN) и Port (по умолчанию 22).
В выпадающем меню Protocol выберите SFTP-SSH File Transfer Protocol.
В выпадающем меню Logon Type выберите Interactive.
Примечание для пользователей PuTTY, открытые ключи которых защищены паролем: Если исходный файл .ppk защищен паролем, при импорте ключа FileZilla будет конвертировать этот файл в незащищенный. До версии 3.0.10 защищен паролем файл ключа не поддерживается.
При необходимости защитить файл ключа паролем FileZilla позволяет использовать инструмент PuTTY под названием Pageant.
Просто запустите Pageant. В системном трее появится значок Pageant.
Щелкните правой кнопкой мыши на иконке, выберите Add Key и укажите файл закрытого ключа (.ppk). Затем введите пароль.
В завершение запустите FileZilla и подключитесь к виртуальному выделенному серверу через SFTP с помощью SSH2, указав имя пользователя и пропустив пароль (завершив, не забудьте закрыть Pageant).
Удаление службы win32 openssh
Чтобы корректно удалить службу Win32 OpenSSH из системы:
- Откроем консоль Powershell с правами администратора
- Остановим службу SSHD:
Stop-Service sshd
- Удалим службу OpenSSD:Удалим ключи:
.uninstall-sshlsa.ps1
sshd successfully uninstalled ssh-agent successfully uninstalled
Установка win32 openssh в windows 10 1803 /windows server 2021
В Windows 10, начиная с билда 1803, и в Windows Server 2021 пакет OpenSSH (как и RSAT) уже включен в операционную систему в виде Feature on Demand (FoD).
В Windows 10 и Windows Server 2021 вы можете установить сервер OpenSSH с помощью командлета PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Server*
Или с помощью DISM:dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Или можно установить OpenSSH из графического интерфейса Windows 10 (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).
Исполняемые файлы OpenSSH находятся в каталоге:
c:windowssystem32OpenSSH
Конфигурационный файл sshd_config находится в каталоге C:ProgramDatassh (каталог создается после первого запуска службы).
Лог — c:windowssystem32OpenSSHlogssshd.log
Заключение
В этом руководсве мы охватили основы использования SFTP для безопасной передачи файлов. Мы надеемся, что эта статья была вам полезной. Однако, если вам нужна дополнительная информация только о FTP, вы можете найти больше руководств здесь.
Также, если у вас возникли вопросы, не стесняйтесь оставлять их в комментариях ниже.