Команда sftp в Linux

Linux 命令大全Полный список команд Linux


Что такое sftp?

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

Различия между SFTP и FTP

Характеристика SFTP FTP
Безопасность Зашифрованная передача Передача в открытом виде
Порт 22 (порт SSH) 21 (порт управления) + 20 (порт данных)
Протокол Основан на SSH Независимый протокол
Совместимость с брандмауэром Нужно открыть только один порт Нужно открыть несколько портов

Базовый синтаксис команды sftp

sftp [选项] [用户名@]主机名[:路径]

Общие параметры опций

Опция Описание
-P 端口号 Указать порт подключения (по умолчанию 22)
-b 批处理文件 Выполнять команды из пакетного файла
-r Рекурсивно копировать весь каталог
-v Отображать подробную отладочную информацию
-i 私钥文件 Аутентифицироваться с помощью указанного файла закрытого ключа

Подключиться к серверу SFTP

Базовый способ подключения

Пример

sftp username@hostname

Пример:

Пример

sftp user@example.com

Подключиться с указанным портом

Если сервер использует нестандартный порт (не 22):

Пример

sftp -P 2222 user@example.com

Использовать аутентификацию по ключу

Пример

sftp -i ~/.ssh/id_rsa user@example.com

Общие команды операций SFTP

1. Локальные файловые операции

Команда Описание
lls Показать содержимое локального каталога
lcd Сменить локальный рабочий каталог
lmkdir Создать каталог локально
lrm Удалить локальные файлы

2. Удалённые файловые операции

Команда Описание
ls Показать содержимое удалённого каталога
cd Сменить удалённый рабочий каталог
mkdir Создать каталог удалённо
rm Удалить удалённые файлы
rename Переименовать удалённые файлы

3. Передача файлов

Команда Описание
put 本地文件 [远程路径] Загрузить файлы на удалённый сервер
get 远程文件 [本地路径] Скачать файлы с удалённого сервера
mput 本地文件* Загрузить несколько файлов
mget 远程文件* Скачать несколько файлов

Практические примеры

Пример 1: Загрузить файлы на сервер

Пример

sftp user@example.com
sftp> cd /var/www/html
sftp> put index.html
sftp> exit

Пример 2: Скачать целый каталог (рекурсивно)

Пример

sftp -r user@example.com:/backups /local/backups

Пример 3: Использование пакетного файла

Создайтеsftp_commands.txt:

put file1.txt
put file2.txt
get report.pdf
exit

Выполнить пакет:

Пример

sftp -b sftp_commands.txt user@example.com

Продвинутые советы

1. Используйте подстановочные знаки для передачи нескольких файлов

Пример

sftp> mput *.jpg      # Загрузить все файлы jpg
sftp> mget log_*.txt  # Скачать все txt-файлы, начинающиеся с log_

2. Изменить права доступа к файлу

Пример

sftp> chmod 644 index.html

3. Просмотреть информацию о файле

Пример

sftp> ls -l

4. Используйте символические ссылки

Пример

sftp> symlink /path/to/original /path/to/link

Решения распространённых проблем

1. Соединение отклонено

  • Проверьте, запущена ли на сервере служба SSH
  • Убедитесь, что порт указан правильно
  • Проверьте настройки брандмауэра

2. Ошибка аутентификации

  • Убедитесь, что имя пользователя и пароль верны
  • Проверьте права доступа к файлу ключа (должно быть 600)
  • Убедитесь, что ваш открытый ключ находится на сервере

3. Передача файла прервана

  • Проверьте сетевое подключение
  • Попробуйте использоватьregetиreputкоманда для возобновления передачи

4. Недостаточно прав

  • Проверьте права на запись в удалённом каталоге
  • Возможно, вам потребуется использоватьsudo(Но sftp обычно не поддерживает прямой sudo)

Лучшие практики безопасности

  1. Используйте аутентификацию по ключувместо аутентификации по паролю
  2. Ограничьте права пользователя, используйте окружение chroot
  3. Регулярно обновляйтепрограммное обеспечение SSH-сервера
  4. Отключите вход root, используйте обычного пользователя + sudo
  5. Отслеживайте файлы журналов(/var/log/auth.log)

Итог

SFTP — важный инструмент для безопасной передачи файлов в системах Linux. Из этого руководства вы должны были освоить:

  • Основные понятия и методы подключения SFTP
  • Распространённые команды для работы с файлами и передачи файлов
  • Практическая пакетная обработка и продвинутые советы
  • Решения типичных проблем
  • Лучшие практики безопасного использования

Теперь вы можете безопасно и эффективно передавать файлы между своей локальной машиной и удалённым сервером!

Linux 命令大全Полный список команд Linux

Другие расширения