105 команд для работы с сервером linux по ssh
Содержание:
- Подключение к SFTP с помощью SSH
- Создать SSH туннель
- Графический интерфейс SFTP
- Конвертация сертификатов
- Command-line options
- Возможности [ править ]
- Прочее
- 8.7. Как скопировать файлы с сервера на сервер по протоколу SSH, MC, RSYNC
- Как работают триггеры SFTP-SSH
- Что такое SSH?
- SSH
- Синтаксис команды scp
- FTP и SFTP
- Перенос файлов на Raspberry Pi из Windows или Mac OS
- Что такое SCP, передающий файлы по SSH?
- Проверка службы SSH на сервере
- ssh keys
- Как в curl работать с протоколами SCP и SFTP
- Базовый синтаксис
- Навигация
- Установка, обновление и удаление пакетов
- Сравнение SFTP-SSH и SFTP
- Копирование файлов по SSH
Подключение к SFTP с помощью SSH
При добавлении триггера или действия, которое подключается к службе или системе в первый раз, конструктор рабочих процессов предлагает создать Подключение , предоставляя необходимые сведения, которые зависят от подключения, например:
-
имя, которое вы хотите использовать для нового подключения;
-
имя для системы или сервера;
-
учетные данные пользователя или учетной записи;
-
Тип проверки подлинности
Войдите на портал Azure и откройте свое приложение логики в конструкторе приложений логики, если оно еще не открыто.
Для пустых приложений логики в поле поиска в качестве фильтра введите . В списке триггеров выберите нужный триггер.
-или-
В имеющихся приложениях логики на последнем шаге, в котором необходимо добавить действие, выберите Новый шаг. В поле поиска введите в качестве фильтра. В списке действий выберите любое необходимое действие.
Чтобы добавить действие между шагами, переместите указатель на стрелку между шагами
Нажмите появившийся знак «плюс» ( + ), а затем выберите Добавить действие.
Укажите необходимые сведения для подключения.
Важно!
При вводе закрытого ключа SSH в свойстве закрытого ключа SSH выполните следующие дополнительные шаги, которые помогут убедиться, что вы предоставили полное и правильное значение для этого свойства. Недопустимый ключ вызывает сбой подключения.
Несмотря на то, что можно использовать любой текстовый редактор, ниже приведены примеры шагов, которые показывают, как правильно копировать и вставлять в него ключ
Например, с помощью Notepad.exe.
Откройте файл закрытого ключа SSH в текстовом редакторе. В этих шагах Notepad используется в качестве примера.
В меню Правка в Блокноте выберите Выделить все.
Выберите Правка > Копировать.
Вставьте весь скопированный ключ в свойство Закрытый ключ SSH, которое поддерживает несколько строк, в добавленном триггере или действии SFTP-SSH. Не вводите и не изменяйте ключ вручную.
Завершив ввод сведений о подключении, нажмите кнопку Создать.
Теперь укажите необходимые сведения для выбранного триггера или действия и продолжайте создание рабочего процесса приложения логики.
Создать SSH туннель
Туннели обычно создают для перенаправления траффика. SSH tunnel это то же самое что и SSH port forwarding.
Допустим вы хотите направить траффик со своего localhost (127.0.0.1) на
удалённый
хост 192.168.0.2.
На
удалённом
хосте у вас есть пользователь с именем andrei и вы знаете его пароль.
Сперва нужно определиться с портами на локальном хосте и на удалённом.
Предположим, вы выбрали 9119 для локального и
9200 для
удаленного
хостов.
То есть вы хотите, чтобы всё, что идёт на localhost:9119 было перенаправлено на
192.168.0.2:9200
Выполните
ssh -L 9119:192.168.0.2:9200 andrei@192.168.0.2
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDA …
…
andrei@192.168.0.2’s password:
Last login: Sun Jan 31 13:23:00 2021
Проверьте ip выполнив
ip a
Если вам нужен туннель с поддержкой графического интерфейса
X Window System
используйте флаг -X
ssh -X -L 9119:192.168.0.2:9200 andrei@192.168.0.2
Графический интерфейс SFTP
Если на сервере или просто удалённом компьютере запущен SSH, то для передачи файлов на этот компьютер или скачивания файлов с него не нужно устанавливать FTP или любое другое дополнительное программное обеспечение.
SSH из коробки поддерживает протоколы SCP и SFTP. Причём в пакете ssh поставляются одноимённые утилиты scp и sftp для обмена файлами. Подробности о них вы найдёте в статье «SSH (ч.5): Копирование файлов с помощью scp и sftp». Но это утилиты с интерфейсом командной строки, что не всем может быть удобно.
Протокол SFTP поддерживается несколькими кроссплатформенными программами с графическим интерфейсом. То есть, вы можете закачивать и управлять файлами на сервере через программу с графическим интерфейсом. Причём на сервере кроме запущенного SSH больше ничего не требуется.
Конвертация сертификатов
Рассмотрим простой пример: вы достали из
базы данных
сертификат
MIIC4jCCAc … A7A6Rpt8V9Q==
, но он не отформатирован и не проходит валидацию
Сертификат, конечно, длиннее, я поставил троеточие для экономии места и вашего времени.
Выполните
echo ‘MIIC4jC … 7A6Rpt8V9Q==’ | base64 -d | openssl x509 -inform der
Либо, если вам нужно работать с файлами — сохраните исходный сертифика в фай
raw_cert
echo MIIC4jC … 7A6Rpt8V9Q== > raw_cert
cat raw_cert | base64 -d | openssl x509 -inform der > cert
cat cert
——BEGIN CERTIFICATE——
MIIC4jC … 7A6Rpt8V9Q==
——END CERTIFICATE——
Такого же результата можно было добиться аккуратно добавив ——BEGIN CERTIFICATE—— в начало
и ——END CERTIFICATE—— в конец файла, но не всегда всё так просто.
Command-line options
The sample below presents ssh-copy-id command line syntax:
The options have the following meaning:
-f Don’t check if the key is already configured as an authorized key on the server. Just add it. This can result in multiple copies of the key in files.
-i Specifies the identity file that is to be copied (default is ). If this option is not provided, this adds all keys listed by . Note: it can be multiple keys and adding extra authorized keys can easily happen accidentally! If returns no keys, then the most recently modified key matching , excluding those matching , will be used.
-n Just print the key(s) that would be installed, without actually installing them.
-o ssh_option Pass to the SSH client when making the connection. This can be used for overriding configuration settings for the client. See ssh command line options and the possible configuration options in ssh_config.
-p port Connect to the specifed SSH port on the server, instead of the default port 22.
-h or -? Print usage summary.
Возможности [ править ]
По сравнению с протоколом SCP , который разрешает только передачу файлов, протокол SFTP позволяет выполнять ряд операций с удаленными файлами, что делает его более похожим на протокол удаленной файловой системы . Дополнительные возможности клиента SFTP включают возобновление прерванной передачи, списки каталогов и удаленное удаление файлов.
SFTP пытается быть более независимым от платформы, чем SCP; с SCP, например, расширение подстановочных знаков, указанных клиентом, зависит от сервера, тогда как дизайн SFTP позволяет избежать этой проблемы. Хотя SCP чаще всего реализуется на платформах Unix , серверы SFTP обычно доступны на большинстве платформ. Передача файлов в SCP выполняется быстро по сравнению с протоколом SFTP из-за того, что протокол SFTP является двусторонним. В SFTP передачу файлов можно легко прервать, не прерывая сеанс, как это делают другие механизмы.
SFTP — это не FTP, работающий по SSH , а скорее новый протокол, разработанный с нуля рабочей группой IETF SECSH . Иногда его путают с Простым протоколом передачи файлов .
Сам протокол не обеспечивает аутентификацию и безопасность; он ожидает, что базовый протокол обеспечит это. SFTP чаще всего используется как подсистема реализации протокола SSH версии 2, разработанная той же рабочей группой. Однако возможно запустить его через SSH-1 (и некоторые реализации поддерживают это) или другие потоки данных. Запуск SFTP-сервера через SSH-1 не зависит от платформы, поскольку SSH-1 не поддерживает концепцию подсистем. Клиент SFTP, желающий подключиться к серверу SSH-1, должен знать путь к двоичному файлу SFTP-сервера на стороне сервера.
Загруженные файлы могут быть связаны с их основными атрибутами, такими как отметки времени. Это преимущество перед обычным протоколом FTP .
Прочее
Это бонус для развлечения. Шутка от разработчиков Linux, не несущая пользы.
cowsay — заставляет цифровую корову повторить текст, который вы ей передали. Как echo, только от лица коровы.
fortune | cowsay — награждает корову философским интеллектом и дает ей возможность делиться с вами умными цитатами.
cowsay -l — демонстрирует всех животных, которые могут с вами пообщаться в том случае, если вам почему-то не приглянулась корова.
sudo название менеджера пакетов install fortunes fortune-mod fortunes-min fortunes-ru — учит животных говорить на русском.
Здесь, пожалуй, и остановимся. Ключевые SSH-команды сервера мы рассмотрели. Их хватит для навигации и выполнения базовых операций. Остальное уже на ваших плечах и полностью зависит от проекта, над которым вы работаете.
8.7. Как скопировать файлы с сервера на сервер по протоколу SSH, MC, RSYNC
1. Подключитесь к серверу по протоколу SSH используя SSH клиент, например Putty
mc
Right → Ftp Linklogin_ftp:pass_ftp@name_server.comОК
Copy
Для максимально быстрого и удобного копирования большого количества файлов/папок больших размеров желательно использовать утилиту rsync, особенности которой — копирование без искусственных ограничений, сжатия и шифрования, из-за которых копирование по ftp и ssh и происходит не очень быстро, на фактической скорости чтения/записи дисков и пропускной способности сети .
Разберем работу утилиты на примере
rsync -apogvr -e «ssh -c arcfour» —progress —bwlimit=10240 /var/www/slagor/data/www/ slagor@91.234.35.81:/var/www/slagor/data/www
Приведенную команду нужно запустить по ssh на исходящем сервере (с которого мы копируем данные). Также ее можно запустить и севевер получетя, но тогда нужно поменять местами получателя и отправителя (slagor@91.234.35.81:/var/www/slagor/data/www /var/www/slagor/data/www/).
При этом утилита должна быть установлена на обеих серверах — если на каком-то она не установлена — установить ее можно командой apt-get install rsync либо yum install rsync (для centos).
Так вот эта команда скопирует содержимое папки /var/www/slagor/data/www/
в папку /www пользователя slagor на сервер 91.234.35.81
При этом нужно будет указать пароль пользователя slagor. Можно также использовать root либо другого пользователя, при этом папку получателя нужно указывать с учетом корня пользователя.
Ключ ssh -c arcfour дополнительно ускорит rsync за счет использования более простого метода шифрования.
Иногда так случается, что скорость копирования нужно ограничить (например для того, чтобы не нагружать сильно дисковую систему сервера). Для ограничения скорости можно использовать директиву
—bwlimit=KBPS
которая ограничить скорость ввода/вывода, Кбайт/с
В примере, указанном выше команда с ограничением скорости копирования 10 МБ/С.
Добавление опций заставляет rsync делать следующее:
-p, —perms — перенос прав;
-g, —group — установить группу конечного файла таким же, как и у исходного;
-o, —owner — установить владельца конечного файла таким же, как и у исходного;
Разумеется, группы и пользователи должны существовать на целевом сервере куда осуществляется копирование.
Так же, бывают ситуации когда нужно исключить из копирования некоторый путь.
Тогда, нужно использовать директиву: —exclude=’dir1/dir2/’
Где dir1/dir2/ — это исключаемый путь, относительно базы указанной в качестве источника копирования.
Как работают триггеры SFTP-SSH
Поведение опроса
Триггеры SFTP-SSH работают путем опроса файловой системы SFTP и поиска любого файла, который был изменен со времени последнего опроса. При изменении файлов некоторые средства позволяют сохранить метку времени. В этом случае необходимо отключить эту функцию, чтобы триггер мог работать. Ниже приведены некоторые распространенные параметры:
Клиент SFTP | Действие |
---|---|
Winscp | Выберите Параметры > Настройки > Перенос > Изменить > Сохранение метки времени > Отключить |
FileZilla | Выберите Перенос > Preserve timestamps of transferred files (Сохранение метки времени перенесенных файлов) > Отключить. |
Найдя новый файл, триггер проверяет, записан ли файл полностью, а не частично. Например, во время проверки файлового сервера триггером в файл могут вноситься изменения. Чтобы избежать возврата частично записанного файла, триггер отмечает метку времени для файла с последними изменениями и не возвращает его сразу. Он возвращает его только при повторном опросе сервера. Иногда такое поведение может вызвать задержку, которая удваивает интервал опроса триггера.
Сдвиг и смещение повторения триггера
Триггеры на основе подключения, для которых необходимо сначала создать подключение (например, триггер SFTP-SSH), отличаются от встроенных триггеров, которые изначально выполняются в Azure Logic Apps (например, триггер Recurrence). В триггерах повторения на основе подключения расписание повторения является не единственным фактором, который управляет выполнением, а часовой пояс определяет только исходное время начала. Последующие запуски зависят от расписания повторения, последнего выполнения триггера и других факторов, которые могут привести к смещению времени выполнения или непредвиденному поведению. Например, непредвиденное поведение может включать в себя сбой при переходе на летнее и зимнее время. Чтобы убедиться в том, что время повторения не сдвинется при переходе на зимнее или летнее время, настройте повторение вручную. Таким образом ваш рабочий процесс продолжит выполняться в ожидаемое время. В противном случае время запуска сдвинется на один час вперед при переходе на летнее время и на один час назад — при переходе на зимнее время. Дополнительные сведения см. в разделе .
Что такое SSH?
Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.
Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.
SSH
А что же с SSH? Говоря простыми словами, если предыдущие протоколы изначально разрабатывались для простой передачи файлов, что здесь можно говорить об изначальном создании защищенного протокола, создающего туннель между пользователем и сервером в любой среде передачи. О большой функциональности такого протокола говорить не стоит, однако если вы хотите получить самую высокую степень защиты, то этот протокол подойдет оптимально. Некоторые хостеры предоставляют доступ по такому протоколу за отдельную плату, поскольку кроме всего прочего протокол позволяет удаленно запускать любые программы на сервере. В этом его главное преимущество.
Процедура подключения похожа с предыдущим случаем, но с некоторыми отличиями: здесь нужно указывать порт и особые логин с паролем для доступа на сервер,а также потребуется свободно распространяемая и бесплатная программа PuTTY или WinSCP.
Синтаксис команды scp
Синтаксис команды scp следующий:
Команда scp принимает на вход различные опции (см. примеры ниже), а также файл или директорию, которую необходимо скопировать (аргумент что_копируем ). Последним аргументом указывается путь назначения, в который будет произведено копирование (аргумент куда_копируем ).
Аргументы что_копируем и куда_копируем могут быть, как локальными путями, так и удаленными. То есть можно копировать файлы с удаленного компьютера на локальный и наоборот. Можно копировать файлы с удаленного компьютера на другой удаленный компьютер.
что_копируем и куда_копируем имеют следующий синтаксис:
имя_пользователя — это имя пользователя для подключения по ssh. IP_адрес — IP адрес компьютера (хоста) на который или с которого будет копирование.
FTP и SFTP
Для анализа мы возьмем идеальный вариант, когда файлы для загрузки расположены на локальном жестком диске, в одной из папок. Закачка файлов по протоколу FTP (File Transfer Protocol) не отличается от его собрата SFTP (Secured File Transfer Protocol), который является более усовершенствованной (читайте, защищенной и от того более медленной) версией первого. Для закачки по одному из этих протоколов хорошо подходит всем известный файл-менеджер Total Commander
Cкачать его в Интернете очень просто, поэтому здесь не будем заострять внимание читателя
Нужно открыть папку файлов для загрузки через менеджер, выделить их одним из удобных способов (Ctrl+A, «звездочка» на цифровой клавиатуре и т.д.), упаковать в один архив комбинацией клавиш Alt+F5, после чего выбрать один из типов будущего архива (ZIP или TGZ). Если все процедуры выполнялись в левом окне, то, по умолчанию, новый архив окажется в правом окошке (и наоборот).
После этих процедур нужно связаться с FTP (SFTP) сервером хостинга. Для этого нужно знать данные из письма, которое приходит от хостера после активации учетной записи пользователя. Вам нужно знать:
- Имя хоста для загрузки.
- Логин для подключения.
- Пароль подключения.
Настройка FTP-соединения в файловом менеджере выполняется после нажатия комбинации Ctrl + F, а затем кнопки «Добавить». После этого следует приступить к заполнению формы подключения:
- имя соединения (здесь можно набирать любое название);
- сервер (здесь нужно указать FTP имя хоста, точнее, его IP адрес);
- учетная запись (здесь записывается логин);
- пароль (ищем в письме от хостера).
Нажатием клавиши OK сохраняем внесенные настройки.
В появившемся окошке соединения с FTP-сервером выбираем новое ранее созданное соединение и кнопку «Соединиться». Мы оказываемся на сервере хостера, где корневой каталог сайта будет размещен в « /www/имя _домена/». Далее нужно зайти в эту папку и из другого окна Total Commander скопировать архив кнопкой F5. Почему нужно упаковать файлы в архив? Так он будет быстрее записан на сервер, а при SFTP-соединении такая процедура будет проходить еще медленнее из-за повышенной степени защиты.
Использование Total Commander не является панацеей от всех бед, однако помогает значительно упростить процедуру закачки файлов на хостинг.
После копирования файлов на сервер следует через панель администрирования сайта открыть менеджер файлов, где будет отображаться новый архив, из которого можно свободно извлекать файлы.
Перенос файлов на Raspberry Pi из Windows или Mac OS
В Windows или Mac OS, как это часто бывает, мы не собираемся передавать файлы напрямую в командные строки, а вместо этого будем использовать графический интерфейс.
На самом деле мы собираемся использовать инструмент, который вы, вероятно, знаете, если раньше использовали FTP-сервер, FileZilla. Действительно, если FileZilla изначально является клиентом FTP, он также действует как клиент SFTP и SCP.
Перейдите на страницу загрузки FileZilla, выберите версию, подходящую для вашей системы, установите ее и запустите программу.
При запуске FileZilla доступна только левая часть (ваш компьютер).
После запуска FileZilla нажмите «Файл», «Диспетчер сайтов», откроется окно, позволяющее управлять своими сайтами. Сделайте «Новый сайт», правая часть позволяет вам ввести информацию о подключении к Raspberry Pi.
В разделе «Хост» введите IP-адрес вашего Raspberry Pi (если вы его не знаете, перейдите к нашему руководству, чтобы узнать IP-адрес вашего Raspberry Pi).
В части порта введите SSH-порт вашего Raspberry Pi, по умолчанию это 22.
Что наиболее важно, в разделе «Протокол» выберите Протокол передачи файлов SSH, это протокол передачи на основе SSH, который заменил SCP и поддерживается FileZilla. Наконец, для части «Тип аутентификации» выберите «Обычный» и введите своего пользователя Raspberry, и ваш пароль
Наконец, для части «Тип аутентификации» выберите «Обычный» и введите своего пользователя Raspberry, и ваш пароль.
Все, что вам нужно сделать, это нажать на «Подключение».
Ваши поля должны выглядеть примерно так, конечно, с настройкой IP.
Затем вы должны увидеть сообщение с просьбой подтвердить ключ хост-сервера. Это связано с тем, что в отличие от FTP, SFTP использует SSH для шифрования данных и, следовательно, требует ключа шифрования. Нажмите «Подтвердить».
Вы должны подтвердить ключ шифрования сервера.
И вот, вы подключены к своему Raspberry Pi! Теперь вы можете исследовать файловую систему так же, как и ваш пользователь Pi.
Теперь, когда вы подключены к серверу, вы можете увидеть его файлы справа.
Это означает, что вы имеете право делать на сервере все, что может делать ваш пользователь Pi. Вы можете легко передавать файлы между Raspberry Pi и компьютером, просто перетаскивая их!
Теперь твоя очередь !
Что такое SCP, передающий файлы по SSH?
Если вы используете Raspberry Pi, вы, вероятно, слышали о SSH, инструменте, который позволяет удаленно управлять компьютером из командной строки. Но вы можете не знать, что SSH не только для этого.
Одним из многих возможных вариантов использования SSH является SCP, или Secure CoPy. Это протокол для передачи файлов с одного компьютера на другой, основанный на протоколе SSH, который шифрует передаваемые данные.
SSH — это протокол удаленного управления с шифрованием данных.
Поэтому для нас, работающих с Raspberry Pi, SCP особенно интересен, поскольку Raspberry Pi уже имеет встроенный SSH-сервер, и поэтому нам не нужно устанавливать или настраивать сервер, как в случае с FTP.
Если вы новичок в SSH, возможно, вы захотите прочитать наше руководство по SSH, прежде чем продолжить. Это несущественно, но я думаю, что это проясняет ситуацию.
Проверка службы SSH на сервере
Доступ по SSH обычно можно включить при создании сервера или во время настройки конфигурации. Убедиться в том, что он разрешен, можно через консоль. Она доступна в панели управления сервером.
Например, у меня VDS на Timeweb. Чтобы попасть в консоль, я авторизуюсь по логину и паролю, выданному хостером, выбираю свой сервер в списке VDS и перехожу на вкладку «Консоль».
Чтобы пользоваться консолью, нужно авторизоваться. Логин и пароль для доступа к серверу хостер присылает в письме. Сначала нужно ввести логин и нажать на клавишу Enter. Появится строка Password. В ней необходимо ввести пароль и снова нажать на клавишу Enter.
Важно:в целях безопасности при вводе пароля на экране не отображаются никакие символы, даже привычные звездочки.
После авторизации в консоли можно проверить, запущена ли служба SSH на сервере.
Выполните команду systemctl status sshd.
Обратите внимание на строчку Active. В ней должна быть выделенная зеленым запись active (running)
Это состояние говорит о том, что служба запущена.
Если служба не активна, добавьте ее самостоятельно. Выполните команду sudo apt install openssh-server и подтвердите установку пакетов.
Кроме того, для подключения вам может понадобиться настройка брандмауэра. Чтобы межсетевой экран не блокировал входящие соединения, можно на время отключить его командой sudo ufw disable.
ssh keys
The first thing that must be done is the creation of an ssh key pair. To do this, open up a terminal window and issue the command:
ssh-keygen -t rsa
You will be asked to name the file (use the default) and give the keypair a passphrase (Figure A).
Figure A
Creating your ssh keypair.
Once the key’s randomart prints, your key is ready to go.
The next step is to copy the key to the remote server. This is done with the command:
ssh-copy-id USER@SERVER
Where USER is the username on the remote server and SERVER is the address of the remote server.
You will be prompted for the remote user password. Once you successfully authenticate, the public key will be copied to the server. You’re ready to go.
SEE: Securing Linux policy (Tech Pro Research)
Как в curl работать с протоколами SCP и SFTP
В отличие от всех рассмотренных ранее, cURL — это программа с интерфейсом командной строки. Но всё равно рассмотрим и вариант с cURL — возможно, кому-то пригодиться.
На мой взгляд, работать с протоколами SCP и SFTP в командной строке удобнее через родные утилиты, поэтому я бы в первую очередь порекомендовал изучить «SSH (ч.5): Копирование файлов с помощью scp и sftp» — там подробно описано как пользоваться этими программами.
cURL и SCP
Протокол SCP предназначен в первую очередь для скачивания и закачки файлов. Для скачивания используется команда вида:
curl -k scp://ПОЛЬЗОВАТЕЛЬ@АДРЕСАТ:ПОРТ/ПУТЬ/ДО/ФАЙЛА
Пример команды:
curl -k scp://root@192.168.1.68:22/root/bin/oneshot.py
Файл oneshot.py из папки /root/bin/ будет скачен в текущую рабочую директорию с исходным именем. Чтобы сохранить файл в другое место и/или с другим именем, добавьте опцию -o, —output <ФАЙЛ> — в качестве <ФАЙЛ> укажите путь в локальной системе.
Мы используем опцию -k которая предназначена для разрешения небезопасных соединений, то есть когда невозможно валидировать (проверить) ключи. Ключи для SSH генерируются пользователями, поэтому проверить их с помощью третьей стороны невозможно. При этом данные соединения не стоит считать небезопасными — они такие же, как и при подключении по SSH, то есть надёжные.
Если приватный ключ для подключения находится по другому пути, то используйте опцию —key ~/.ssh/id_rsa. В современных версиях cURL указывать публичный ключ не нужно — программа сама извлечёт его из приватного ключа. Если вход по ключу не настроен, то используйте опцию —user «testuser:testpassword» или -u user.
Для закачки файла на удалённый сервер используйте опцию -T, —upload-file <ФАЙЛ>, где вместо <ФАЙЛ> укажите файл, который нужно выгрузить. Пример команды:
curl -k -T /home/mial/banner.txt scp://root@192.168.1.68:22/root/banner.txt
cURL и SFTP
При работе с протоколом SFTP, также применяются опции:
- -k (разрешить подключения при неудачной валидации ключа)
- —key ~/.ssh/id_rsa — указать другое расположение приватного ключа
- —user «testuser:testpassword» или -u user — на случай если не настроен вход по ключу
- -T, —upload-file <ФАЙЛ> для указания файла выгрузки
Для листинга списка файлов файлов в директории /root/bin/ пользователя root на хосте 192.168.1.68, порт 22:
curl -k sftp://root@192.168.1.68:22/root/bin/
Другие примеры взяты из инструкции «How to use Curl Command line tool with FTP and SFTP»:
Выгрузка используя curl на SFTP
curl -k "sftp://83.46.38.23:22/CurlPutTest/" --user "testuser:testpassword" -T "C:\test\testfile.xml" --ftp-create-dirs
Загрузка используя curl на SFTP
curl -k "sftp://83.46.38.23:22/CurlPutTest/testfile.xml" --user "testuser:testpassword" -o "C:\test\testfile.xml" --ftp-create-dirs
Переименование используя curl на SFTP
curl -k "sftp://83.46.38.23:22/CurlPutTest/" --user "testuser:testpassword" -Q "-RENAME '/CurlPutTest/testfile.xml' '/CurlPutTest/testfile.xml.tmp'" --ftp-create-dirs
Удаление используя curl на SFTP
curl -k "sftp://83.46.38.23:22/CurlPutTest/" --user "testuser:testpassword" -Q "-RM /CurlPutTest/testfile.xml" --ftp-create-dirs
Создание директории используя curl на SFTP
curl -k "sftp://83.46.38.23:22/CurlPutTest/test" --user "testuser:testpassword" -Q "-MKDIR /CurlPutTest/Test" --ftp-create-dirs
Удаление директории используя curl на SFTP
curl -k "sftp://83.46.38.23:22/CurlPutTest/test" --user "testuser:testpassword" -Q "-RMDIR /CurlPutTest/Test" --ftp-create-dirs
Как можно догадаться, -Q — это опция для отправки команд на SFTP сервер. Дефис перед командой (префикс) также имеет значение (имеются разные префиксы). Нужно знать, что cURL поддерживает не все команды SFTP — подробности в документации по cURL:
man curl
Опция —ftp-create-dirs означает создать необходимую директорию, если она отсутствует (в противном случае работа cURL завершится ошибкой).
Базовый синтаксис
Команда scp выглядит следующим образом
Данная команда выполняет копирование указанного файла (имя_файла) в конкретную директорию (директория_назначения) на узле назначения (узел_назначения) с использованием учетной записи определенного пользователя (пользователь). Подробная информация о процессе копирования При запуске без параметров команда scp будет копировать файлы в фоновом режиме. Пользователь ничего не видит, пока процесс не будет завершен, или не возникнет какая-либо ошибка. Для вывода подробной информации о процессе копирования на экран можно воспользоваться параметром –v. Это может помочь в отладке проблем соединения, аутентификации и конфигурации.
Навигация
Вывод текущей рабочей директории
Для вывода информации о текущей рабочей директории используется команда pwd.
Пример использования:
username@server:~$ pwd /home/u/username
Вывод содержимого директории
Чтобы посмотреть содержимое директории, воспользуйтесь командой ls.
Вывод содержимого текущей директории в несколько колонок (только имена файлов и директорий):
ls .
Вывод содержимого текущей директории в одну колонку (только имена файлов и директорий):
ls -1
Вывод подробной информации о содержимом текущей директории, включая скрытые файлы (имя которых начинается с точки):
ls -la
Вывод содержимого конкретной директории:
ls имя_директории
Пример использования:
username@server:~$ ls -la total 16 drwx------ 4 username customers 4096 Mar 10 12:56 . drwx------ 14 username customers 4096 Mar 10 12:55 .. -rw------- 1 username customers 0 Mar 10 12:56 .htaccess drwx------ 2 username customers 4096 Mar 10 12:55 test drwx------ 2 username customers 4096 Mar 10 12:55 test1 -rw------- 1 username customers 0 Mar 10 12:55 test.txt где "." - текущий каталог, а ".." - родительский каталог.
Перемещение между директориями
Команда cd позволяет выполнить переход в другую директорию.
Основные способы применения:
Перейти в директорию, которая находится в текущей директории:
cd dirname
Перейти в родительский каталог (на уровень выше):
cd ..
Перейти в домашний каталог:
cd # Либо: cd ~
Перейти в домашний каталог по абсолютному пути (начиная с корня):
cd /home/u/username
Перейти в предыдущий каталог:
cd -
Примеры использования:
# Текущая директория отображается после двоеточия и до символа "$". # Перейти в каталог media username@server:~$ cd /home/u/username/public_html/media # Перейти в каталог cms username@server:~/public_html/media$ cd cms # Перейти в домашний каталог username@server:~/public_html/media/cms$ cd # Перейти в предыдущий каталог username@server:~$ cd - /home/u/username/public_html/media/cms # Перейти на уровень выше username@server:~/public_html/media/cms$ cd .. username@server:~/public_html/media$
Установка, обновление и удаление пакетов
В Linux почти все программное обеспечение имеет открытый исходный код, поэтому в большинстве своем распространяется через открытые репозитории. Для его загрузки и установки используются менеджеры пакетов. В каждом семействе дистрибутивов он свой.
apt (в Debian, Ubuntu и им подобных)
sudo apt-get install название пакета — устанавливает пакет из подключенных репозиториев. Ищется по названию и версии.
sudo apt remove название пакета — удаляет из системы установленный пакет.
sudo apt purge название пакета — удаляет установленный пакет и вместе с ним уничтожает все зависимые данные. От приложения не остается никаких следов. Такой вариант подходит, когда нужна полная переустановка пакета «с нуля».
sudo apt autoremove — автоматически выполняет уборку среди установленных пакетов, убирая ненужные остатки кода.
sudo apt-add-repository адрес репозитория — подключает к системе дополнительный репозиторий с пакетами, не вошедшими в базу репозиториев по умолчанию. Требуется для установки некоторых редких open-source-приложений.
sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе и тех, что хранятся в подключенных репозиториях.
sudo apt-upgrade — обновляет версии установленных пакетов до самых свежих, доступных в подключенных репозиториях.
dnf (в Red Hat Linux, CentOS, Fedora)
sudo dnf install название пакета — устанавливает программу на выбор.
sudo dnf config-manager –add-repo адрес репозитория — подключает к системе дополнительный репозиторий.
sudo dnf upgrade — обновляет версии установленных пакетов до самых свежих, доступных в подключенных репозиториях.
sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
sudo dnf autoremove — разыскивает мусор среди имеющихся пакетов и в автоматическом режиме вычищает его.
pacman (в Arch Linux и Manjaro)
sudo pacman -S название пакета — устанавливает пакет на выбор.
sudo yaourt -S название пакета — устанавливает пакет на выбор из репозитория AUR.
sudo pacman -Sy — обновляет информацию о пакетах, имеющихся в системе и тех, что хранятся в подключенных репозиториях.
sudo pacman -Syu — обновляет версии установленных пакетов до самых свежих, доступных в подключенных репозиториях.
sudo pacman -R название пакета — стирает с жесткого диска имеющийся в системе пакет.
sudo pacman -Rs название пакета — стирает не только установленное приложение, но и все зависимые от него элементы.
Сравнение SFTP-SSH и SFTP
В следующем списке приведены основные возможности соединителя SFTP-SSH, которые отличаются от возможностей соединителя SFTP.
-
Использует библиотеку SSH.NET, которая представляет собой библиотеку Secure Shell (SSH) с открытым кодом и поддерживает .NET.
-
Предоставляет действие Создание папки, которое создает папку по указанному пути на сервере SFTP.
-
Предоставляет действие Переименование файла, которое переименовывает файл на сервере SFTP.
-
Кэширует данные, обеспечивая подключение к SFTP-серверу до 1 часа. Эта возможность повышает производительность и сокращает частоту, с которой соединитель пытается подключиться к серверу. Чтобы указать длительность этого кэширования, измените свойство в конфигурации SSH на SFTP-сервере.
Копирование файлов по SSH
При работе с *nix серверами, иногда бывает надобность быстро залить файл на сервер, или скачать c сервера.
Далеко не всегда в таких случаях есть возможность воспользоваться ftp-сервером, или например, передать файл по http (как я иногда делаю), а есть под рукой только ssh.
Но, как мы знаем, ssh протокол очень универсален, в том числе приспособлен и для передачи файлов.
Для этого есть замечательная утилита scp.
Из ее преимуществ можно выделить : простоту использования, защищенность протокола, хорошую производительность.
В Linux она по-умолчанию идет с ssh-клиентом (если я не ошибаюсь), а для Windows есть pscp, который входит в состав замечательного пакета инструментов — всеми любимого PuTTY.
Короче — меньше текста, больше примеров.
Для Linux:
— скачиваем файл на локальную машину
данная команда скачает файл /home/user/file.tar.gz с удаленной машины 11.22.33.44 в папку /opt локальной файловой системы.
— заливаем файл на удаленный сервер
думаю, принцип понятен.
Для Windows:
Открываем консоль и лезем в папку, где у нас установлен PuTTY, затем ищем там pscp.exe
аргументы по аналогии с Linux.
— заливаем файл на удаленный сервер
Ну, в общем вы поняли…