Загрузка и скачивание файлов по SFTP
Загрузка и скачивание файлов по SFTP

SFTP

SFTP — это аббревиатура Secure File Transfer Protocol, протокол безопасной передачи файлов. SFTP является частью SSH. Сам SFTP не имеет отдельного демона. Для выполнения соответствующей операции подключения он должен использовать демон sshd (номер порта по умолчанию — 22). Передача SFTP обеспечивает механизмы проверки паролей и ключей, которые могут эффективно предотвращать угрозы и атаки во время процесса передачи. В RHEL 9 протокол безопасного копирования (SCP) имеет известные уязвимости безопасности и устарел. Для удаленного копирования файлов рекомендуется использовать протокол безопасной передачи файлов SFTP. Обычно используемые SFTP-клиенты для Windows включают XFTP, WinSCP, FileZilla и т. д.

Вход по SFTP

Пароль для входа

Язык кода:javascript
копировать
sftp -P 22 root@127.0.0.1

Ключ входа

Язык кода:javascript
копировать
sftp -P 22 -i ~/.ssh/id_rsa root@127.0.0.1

Основные операции SFTP Shell

Проверьте локальный путь загрузки и скачивания: lpwd

Переключите локальные каталоги загрузки и скачивания: lcd /opt

Переключите локальный рабочий каталог: lcd /opt.

Просмотрите текущий каталог удаленного сервера: pwd

Просмотрите файлы в каталоге удаленного сервера: ls

Переключите рабочий каталог удаленного сервера: lcd /opt

Загрузка файла по SFTP

Загрузите файлы удаленного сервера на локальный

Язык кода:javascript
копировать
get remote_file_name

Скачать переименование файла

Язык кода:javascript
копировать
get remote_file_name local_file_name

Загрузка файлов и каталогов

Язык кода:javascript
копировать
get -r directory_name

Сохраняйте исходные атрибуты и даты файлов.

Язык кода:javascript
копировать
get -Pr directory_name

Загрузка файлов по SFTP

Загрузить локальные файлы на удаленный сервер

Язык кода:javascript
копировать
put localfile

Загружать файлы и каталоги

Язык кода:javascript
копировать
put -r local_directory_name

Введение в параметры команды SFTP

Язык кода:javascript
копировать
sftp [имя хоста]: подключение к указанному имени удаленного хоста.
df [-hi] [путь]: отображение статистики для текущего каталога или файловой системы, содержащей указанный путь.
ls: список файлов и папок в текущем каталоге на удаленном хостинге.
lls: список файлов и папок в текущем каталоге на локальном хостинге.
pwd: отображает каталог Работа на текущем удаленном Хозяине.
lpwd: Отображение каталога Работа на текущем локальном Хозяине.
cd [каталог]: изменить каталог Работа на удаленном Хозяине.
lcd [каталог]: изменить каталог Работа на локальном Хозяине.
get [имя файла]: Загрузить указанный файл с удаленного Хозяина.
put [имя файла]: загрузить файлы с локального компьютера на удаленный Хозяин.
rm [имя файла]: Удалить указанный файл на удаленном Хозяине.
mkdir [каталог]: создать новый каталог на удаленном Хозяине.
lmkdir [каталог]: Создайте новый каталог на локальном Хозяине.
rmdir [каталог]: Удалить указанный каталог на удаленном Хозяине.
rename [oldname] [новое имя]: переименуйте файл или каталог на удаленном Хозяине.
chgrp [-h] grp путь: изменить группу файла или каталога на указанную группу.
chmod [-h] mode путь: изменить разрешения (разрешения) файла или каталога на указанный режим разрешений.
chown [-h] own путь: измените владельца файла или каталога на указанного пользователя.
выход: выйти из сеанса SFTP.
help: Отобразить текст справки по SFTP.

Ограничить пользователям SFTP доступ к нескольким каталогам вверх

SFTP — это безопасный протокол FTP для доступа к FTP через SSH. Пользователям рекомендуется использовать выделенную учетную запись. Они могут только загружать или скачивать файлы и не могут использоваться для входа в систему по SSH. ограничено для предотвращения атак с обходом каталога.

Создать пользователя и каталог sftp

Создавайте новые группы пользователей, пользователей и каталоги sftp.

1. Создайте новый каталог.

Язык кода:javascript
копировать
mkdir -p /data/sftp/sftpuser
chown root:root /data/sftp/sftpuser
chmod 755 /data/sftp/sftpuser

2. Создайте новую группу пользователей.

Язык кода:javascript
копировать
groupadd sftp

3. Создайте нового пользователя

Язык кода:javascript
копировать
useradd -g sftp -d /data/sftp/sftpuser -M -s /sbin/nologin sftpuser
  • -g указывает группу пользователей, -d указывает домашний каталог, -s nologin не могу Авторизоватьсясистема、-MНе создавать домашний каталог

Установить пароль пользователя SFTP

Язык кода:javascript
копировать
echo 'xxxxx'|passwd --stdin sftpuser

4. Создайте новый каталог, доступный для записи по sftp.

Язык кода:javascript
копировать
mkdir -p /data/sftp/sftpuser/upload
chown -R sftpuser:sftp /data/sftp/sftpuser/upload
chmod -R 755 /data/sftp/sftpuser/upload

файл конфигурации SSH

1. Аннотируйте следующие параметры

vim /etc/ssh/sshd_config

Язык кода:javascript
копировать
#Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH

2. Добавьте параметры в конец файла

vim /etc/ssh/sshd_config

Язык кода:javascript
копировать
Subsystem sftp internal-sftp -l INFO -f AUTH
Match Group sftp
ChrootDirectory /data/sftp/u%
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Введение параметров

  • Внутренний sftp подсистемы указывает, что служба sftp использует внутренний sftp, поставляемый с системой. -l INFO указывает, что уровень журнала установлен на информационный уровень. -f AUTH указывает, что система будет записывать журналы, связанные с аутентификацией. процесс.
  • sftp группы сопоставления представляет группу, указанную в конфигурации. Ее также можно записать как sftpuser сопоставления пользователя, чтобы указать настроенного пользователя.
  • ForceCommand Internal-sftp означает принудительное использование внутреннего SFTP системы.
  • ChrootDirectory /data/sftp/%u указывает корневой каталог пользователя, %u представляет текущего пользователя.
  • AllowTcpForwarding no запрещает пересылку TCP
  • X11Forwarding нет запрещает пересылку X11.

3. Перезапустите службу ssh.

Язык кода:javascript
копировать
systemctl restart sshd

Копируйте файлы удаленно на локальный

Язык кода:javascript
копировать
sftp username@remote_host:/path/to/remote_file local_file
  • имя пользователя: имя пользователя удаленного сервера
  • удаленный_хост: IP-адрес удаленного сервера
  • /path/to/remote_file: путь к файлу удаленного сервера
  • local_file: путь к файлу, который будет сохранен локально

Скопируйте локальные файлы на удаленный сервер

Язык кода:javascript
копировать
sftp username@remote_server:/path/to/remote_directory <<< "put /path/to/local_file"
  • /path/to/remote_directory: каталог, в котором сохраняются файлы на удаленном сервере.
  • /path/to/local_file: путь и имя локального файла, который необходимо скопировать.
  • <<<:команда используется для передачи строки вsftpсессия。Командная строка включает в себяputИспользуется для копирования файлов с локальногокопироватьудаленносервер
Язык кода:javascript
копировать
echo "put /opt/go1.19.linux-amd64.tar.gz" | sftp root@192.168.100.92:/mnt
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose