- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Курс по сетям
- Что такое Active Directory и LDAP?
- URL и URI — в чем различие?
- Погружение в Iptables – теория и настройка
- Что такое Domain Name System?
- URL и URI — в чем различие?
- DevSecOps – кратко о том, как улучшить жизнь
- Теоретические основы нейронныx сетей
- 10 полезных SFTP команд
- Как подключиться к SFTP
- Получение помощи
- Полезно?
- Почему?
- Использование SFTP для безопасного обмена файлами
- Что такое SFTP
- Подключение по SFTP
- Получение справки в SFTP
- Навигация с помощью SFTP
- Передача файлов с помощью SFTP
- Передача удаленных файлов на локальную систему
- Передача локальных файлов на удаленную систему
- Простые манипуляции с файлами с помощью SFTP
- Итоги
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
Курс по сетям
Что такое Active Directory и LDAP?
URL и URI — в чем различие?
Погружение в Iptables – теория и настройка
Что такое Domain Name System?
URL и URI — в чем различие?
DevSecOps – кратко о том, как улучшить жизнь
Теоретические основы нейронныx сетей
Еженедельный дайджест
10 полезных SFTP команд
В Linux системах
Протокол передачи файлов (FTP) был широко используемым протоколом для удаленной передачи файлов или данных в незашифрованном формате, что не является безопасным способом связи. Поскольку все мы знаем, что FTP совсем не безопасен, потому что все передачи происходят в незашифрованном тексте, и данные могут быть прочитаны кем угодно во время прослушивания пакетов в сети.
Обучайся в Merion Academy
Пройди курс по сетевым технологиям
Начать
Таким образом, в основном FTP можно использовать в ограниченных случаях или в сетях, которым вы доверяете. Какое-то время SCP и SSH устраняли эту неоднозначность безопасности и добавляли зашифрованный уровень защиты при передаче данных между удаленными компьютерами.
SFTP (Secure File Transfer Protocol) по умолчанию работает по протоколу SSH на стандартном порту 22 для установления безопасного соединения. SFTP был интегрирован во многие инструменты GUI (FileZilla, WinSCP, FireFTP и так далее).
Предупреждение безопасности: Пожалуйста, не открывайте порт SSH (Secure SHell) глобально, так как это может привести к нарушениям безопасности. Вы можете открыть только для определенного IP-адреса, с которого вы собираетесь передавать или управлять файлами в удаленной системе или наоборот.
Эта статья познакомит вас с 10 примерами команд sftp, которые вы можете использовать через интерфейс командной строки.
Как подключиться к SFTP
По умолчанию один и тот же протокол SSH используется для проверки подлинности и установления соединения SFTP. Чтобы начать сеанс SFTP, введите имя пользователя и имя удаленного хоста или IP-адрес в командной строке. После успешной аутентификации вы увидите оболочку с приглашением sftp> .
Получение помощи
Оказавшись в командной строке sftp проверьте доступные команды, набрав ‘? ‘ Или ‘help’ в командной строке.
Проверьте текущий рабочий каталог
Команда «lpwd» используется для проверки локального текущего рабочего каталога, а команда «pwd» — для проверки удаленного рабочего каталога.
Список файлов
Перечисление файлов и каталогов как в локальной, так и в удаленной системе.
Загрузить файл
Поместите один или несколько файлов в удаленную систему.
Загрузить несколько файлов
Размещение нескольких файлов на удаленной системе.
Скачать файлы
Получение одного или нескольких файлов в локальной системе.
Получить несколько файлов в локальной системе.
Примечание: Как мы видим по умолчанию, команда get загружает файл в локальной системе с тем же именем. Мы можем скачать удаленный файл с другим именем, указав имя в конце (это применимо только при загрузке одного файла).
Переключение каталогов
Переключение из одного каталога в другой в локальных и удаленных местах.
Создать каталоги
Создание новых каталогов в локальных и удаленных местах.
Удалить каталоги
Удалить каталог или файл в удаленной системе.
Примечание: чтобы удалить любой каталог из удаленного расположения, каталог должен быть пустым.
Выход из sFTP Shell
Команда ‘!’ выкидывает нас в локальную оболочку, откуда мы можем выполнять команды Linux. Введите команду ‘exit’, после чего мы сможем увидеть подсказку sftp>.
Обучайся в Merion Academy
Пройди курс по сетевым технологиям
Начать
Полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Использование SFTP для безопасного обмена файлами
Что такое SFTP
FTP («File Transfer Protocol», что переводится как «Протокол передачи файлов») – широко используемый метод передачи файлов между двумя удаленными системами.
SFTP расшифровывается как SSH File Transfer Protocol, или Secure File Transfer Protocol («Безопасный протокол передачи файлов»), и является отдельным протоколом, объёдиненным в пакет с SSH и работающим по тому же принципу, но через безопасное соединение. Преимущество состоит в возможности использовать безопасное соединение для передачи файлов и прослеживать файловую систему как локальной, так и удаленной системы.
В большинстве случаев рекомендуется использовать SFTP, поскольку он основан на функциях безопасности и обладает возможностью комбинировать соединения с SSH. FTP является небезопасным протоколом, использовать который лучше только в ограниченных случаях или в сетях, которым можно доверять.
Хотя SFTP интегрирован во многие графические средства, данное руководство описывает его использование через интерактивный интерфейс командной строки.
Подключение по SFTP
SFTP по умолчанию использует протокол SSH для аутентификации и установки безопасного соединения. Потому можно использовать методы аутентификации SSH.
Хотя пароли установлены по умолчанию и просты в использовании, рекомендуется создать SSH-ключи и передать открытый ключ любой системе, к которой нужно получить доступ. Это гораздо безопаснее и помогает сэкономить время.
Пожалуйста, прочитайте следующее руководство по установке SSH-ключей для того, чтобы получить доступ к серверу, если вы не сделали этого ранее.
Если подключение к серверу при помощи SSH возможно, значит все требования, необходимые для управления файлами через SFTP , были выполнены. Проверьте доступ SSH с помощью следующей команды:
Если SSH работает, вернитесь назад, введя:
Можно установить соединение SSH и затем открыть сессию SFTP, используя данное соединение при помощи следующей команды:
После подключения к удаленной системе стандартная строка будет заменена строкой SFTP.
Получение справки в SFTP
Одна из самых полезных команд, которую следует запомнить в первую очередь – команда помощи. Она предоставляет доступ к справке SFTP. Ее можно вызвать, введя любую из нижеприведенных команд в строку:
Это откроет список доступных команд:
Available commands:
bye Quit sftp
cd path Change remote directory to ‘path’
chgrp grp path Change group of file ‘path’ to ‘grp’
chmod mode path Change permissions of file ‘path’ to ‘mode’
chown own path Change owner of file ‘path’ to ‘own’
df [-hi] [path] Display statistics for current directory or
filesystem containing ‘path’
exit Quit sftp
get [-Ppr] remote [local] Download file
help Display this help text
lcd path Change local directory to ‘path’
. . .
Некоторые из приведенных выше команд будут рассмотрены подробнее в следующих разделах.
Навигация с помощью SFTP
По файловой иерархии удаленной системы можно перемещаться с помощью ряда команд, которые функционируют так же, как аналоги их оболочки.
Для начала нужно выяснить, какой каталог удаленной системы является текущим в данный момент. Как и в типичной сессии оболочки, для определения текущего каталога можно использовать следующие команды:
pwd
Remote working directory: /home/demouser
Содержимое текущего каталога удаленной системы можно просмотреть при помощи знакомой команды:
ls
Summary.txt info.html temp.txt testDirectory
Обратите внимание: команды в интерфейсе SFTP не являются стандартными командами оболочки и не так многофункциональны, но они приводят в исполнение некоторые из самых важных флагов:
ls -la
drwxr-xr-x 5 demouser demouser 4096 Aug 13 15:11 .
drwxr-xr-x 3 root root 4096 Aug 13 15:02 ..
-rw——- 1 demouser demouser 5 Aug 13 15:04 .bash_history
-rw-r—r— 1 demouser demouser 220 Aug 13 15:02 .bash_logout
-rw-r—r— 1 demouser demouser 3486 Aug 13 15:02 .bashrc
drwx—— 2 demouser demouser 4096 Aug 13 15:04 .cache
-rw-r—r— 1 demouser demouser 675 Aug 13 15:02 .profile
. . .
Чтобы перейти к другому каталогу, можно использовать команду:
Теперь можно пройти через удаленную файловую систему, но что делать, если необходимо получить доступ к локальной файловой системе? Команды можно направить на локальную файловую систему, указав перед ними «l», что значит «local».
Все вышеуказанные команды имеют локальный эквивалент. Можно вывести на экран локальный рабочий каталог:
lpwd
Local working directory: /Users/demouser
Можно просмотреть содержимое текущего каталога локальной машины:
lls
Desktop local.txt test.html
Documents analysis.rtf
Можно также изменить каталог локальной системы, с которым нужно взаимодействовать:
Передача файлов с помощью SFTP
Перемещение по удаленной и локальной файловой системе имеет ограниченную полезность, так как не предоставляет возможности для передачи файлов между ними.
Передача удаленных файлов на локальную систему
При необходимости загрузить файлы с удаленного хоста можно использовать следующую команду:
get remoteFile
Fetching /home/demouser/remoteFile to remoteFile
/home/demouser/remoteFile 100% 37KB 36.8KB/s 00:01
Как видите, команда «get» по умолчанию загружает удаленный файл к файлу с таким же именем на локальной системе.
Можно скопировать удаленный файл под другим именем, указав новое имя:
get remoteFile localFile
Команда «get» также имеет несколько командных флагов. Например, можно скопировать каталог и все его содержимое, используя рекурсивную команду:
get -r someDirectory
Можно приказать SFTP поддерживать соответствующие права и количество попыток доступа при помощи флагов «-P» или «-p»:
get -Pr someDirectory
Передача локальных файлов на удаленную систему
Передать файлы на удаленную систему легко при помощи соответствующей команды «put»:
put localFile
Uploading localFile to /home/demouser/localFile
localFile 100% 7607 7.4KB/s 00:00
Флаги команды «get» также применимы к команде «put». Таким образом, чтобы скопировать весь локальный каталог, нужно применить:
put -r localDirectory
Команда «df», работающая аналогично командной строке, является популярным инструментом, полезным при загрузке и прересылке файлов. Используя данную команду, можно проверить, достаточно ли места для завершения передачи необходимых файлов:
df -h
Size Used Avail (root) %Capacity
19.9GB 1016MB 17.9GB 18.9GB 4%
Обратите внимание: локального аналога данной команды нет, но это можно обойти при помощи команды «!».
Команда «!» перемещает в локальную оболочку, в которой можно выполнить любую команду, доступную на локальной системе. Можно проверить использование дискового пространства, набрав:
!
df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/disk0s2 595Gi 52Gi 544Gi 9% /
devfs 181Ki 181Ki 0Bi 100% /dev
map -hosts 0Bi 0Bi 0Bi 100% /net
map auto_home 0Bi 0Bi 0Bi 100% /home
Любая другая локальная команда будет функционировать должным образом. Чтобы вернуться к SFTP сессии, наберите:
Затем вернется строка SFTP.
Простые манипуляции с файлами с помощью SFTP
SFTP выполняет базовую поддержку файлов, что будет полезно при работе с иерархиями файлов.
К примеру, можно изменить владельца файла на удаленной системе с помощью строки:
chown userID file
Обратите внимание: в отличие от системной команды «chmod», аналогичная команда SFTP не принимает имена пользователей, но вместо этого использует уникальные идентификаторы (UID). К сожалению, простого способа узнать уникальный идентификатор из интерфейса SFTP нет.
Это можно обойти, используя:
get /etc/passwd
!less passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
. . .
Обратите внимание: команда «!» используется не самостоятельно, а в качестве префикса к команде локальной оболочки. Это работает также при запуске любой команды, доступной на локальной системе; также это можно было использовать ранее с локальной командой «df».
Уникальный идентификатор будет в третьем столбце файла, на что указывают символы двоеточия.
Аналогичным образом можно изменить группу-владельца файла:
chgrp groupID file
Опять же, простого способа получения списка групп удаленной системы нет. Это можно обойти при помощи следующей команды:
Третий столбец содержит идентификатор группы, связанной с именем в первом столбце. Это и нужно было найти.
К счастью, команда «chmod» работает на удаленной файловой системе должным образом:
chmod 777 publicFile
Changing mode on /home/demouser/publicFile
Команды для манипулирования правами доступа к локальным файлам нет, но можно установить umask на локальную машину, и тогда любые файлы, скопированные на локальную систему, будут иметь соответствующие права доступа.
Это можно сделать при помощи команды «lumask»:
lumask 022
Local umask: 022
Теперь все загруженные обычные файлы будут иметь права доступа 644 (при условии, что флаг «-p» не используется).
SFTP позволяет создавать директории как на локальной, так и на удаленной системе с помощью команд «lmkdir» и «mkdir» соответственно.
Остальные файловые команды применимы только к удаленной файловой системе:
Данные команды повторяют основное поведение версий оболочки. Помните, что при необходимости выполнить данные действия на локальной системе можно перейти на нее при помощи команды:
Или же выполните в локальной системе единственную команду, используя «!» как префикс, вот так:
!chmod 644 somefile
Завершив сессию SFTP, используйте «exit» или «bye» для закрытия соединения.
Итоги
Несмотря на простоту использования, SFTP очень полезен в администрировании серверов, а также при передаче файлов между ними.
SFTP объединяет в себе сильные стороны FTP и SCP. И хотя существуют ситуации, когда данный протокол неприменим, все же это достаточно гибкий в использовании инструмент, который стоит иметь в своем арсенале.