SFTP
SFTP — это аббревиатура Secure File Transfer Protocol, протокол безопасной передачи файлов. SFTP является частью SSH. Сам SFTP не имеет отдельного демона. Для выполнения соответствующей операции подключения он должен использовать демон sshd (номер порта по умолчанию — 22). Передача SFTP обеспечивает механизмы проверки паролей и ключей, которые могут эффективно предотвращать угрозы и атаки во время процесса передачи. В RHEL 9 протокол безопасного копирования (SCP) имеет известные уязвимости безопасности и устарел. Для удаленного копирования файлов рекомендуется использовать протокол безопасной передачи файлов SFTP. Обычно используемые SFTP-клиенты для Windows включают XFTP, WinSCP, FileZilla и т. д.
Вход по SFTP
Пароль для входа
sftp -P 22 root@127.0.0.1
Ключ входа
sftp -P 22 -i ~/.ssh/id_rsa root@127.0.0.1
Основные операции SFTP Shell
Проверьте локальный путь загрузки и скачивания: lpwd
Переключите локальные каталоги загрузки и скачивания: lcd /opt
Переключите локальный рабочий каталог: lcd /opt.
Просмотрите текущий каталог удаленного сервера: pwd
Просмотрите файлы в каталоге удаленного сервера: ls
Переключите рабочий каталог удаленного сервера: lcd /opt
Загрузка файла по SFTP
Загрузите файлы удаленного сервера на локальный
get remote_file_name
Скачать переименование файла
get remote_file_name local_file_name
Загрузка файлов и каталогов
get -r directory_name
Сохраняйте исходные атрибуты и даты файлов.
get -Pr directory_name
Загрузка файлов по SFTP
Загрузить локальные файлы на удаленный сервер
put localfile
Загружать файлы и каталоги
put -r local_directory_name
Введение в параметры команды SFTP
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. Создайте новый каталог.
mkdir -p /data/sftp/sftpuser
chown root:root /data/sftp/sftpuser
chmod 755 /data/sftp/sftpuser
2. Создайте новую группу пользователей.
groupadd sftp
3. Создайте нового пользователя
useradd -g sftp -d /data/sftp/sftpuser -M -s /sbin/nologin sftpuser
Установить пароль пользователя SFTP
echo 'xxxxx'|passwd --stdin sftpuser
4. Создайте новый каталог, доступный для записи по sftp.
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
#Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
2. Добавьте параметры в конец файла
vim /etc/ssh/sshd_config
Subsystem sftp internal-sftp -l INFO -f AUTH
Match Group sftp
ChrootDirectory /data/sftp/u%
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Введение параметров
3. Перезапустите службу ssh.
systemctl restart sshd
Копируйте файлы удаленно на локальный
sftp username@remote_host:/path/to/remote_file local_file
Скопируйте локальные файлы на удаленный сервер
sftp username@remote_server:/path/to/remote_directory <<< "put /path/to/local_file"
echo "put /opt/go1.19.linux-amd64.tar.gz" | sftp root@192.168.100.92:/mnt