Перенаправление порта
Туннелирование SSH или переадресация SSH-порта – это метод создания зашифрованного SSH-соединения между клиентом и серверным компьютером, через который можно ретранслировать сервисные порты.
Пересылка SSH полезна для передачи сетевых данных служб, которые используют незашифрованный протокол, таких как VNC или FTP, для доступа к контенту с географическим ограничением или обхода промежуточных межсетевых экранов. По сути, вы можете перенаправить любой порт TCP и туннелировать трафик через безопасное соединение SSH.
Существует три типа переадресации портов SSH:
Переадресация локального порта
Переадресация локального порта позволяет переадресовать соединение с клиентского хоста на хост сервера SSH, а затем на порт хоста назначения.
Чтобы создать локальную переадресацию портов, передайте опцию -L клиенту ssh:
ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname
Опция -f указывает команде ssh запускаться в фоновом режиме, а -N – не выполнять удаленную команду.
Переадресация удаленных портов
Переадресация удаленных портов является противоположностью переадресации локальных портов. Он перенаправляет порт с хоста сервера на хост клиента, а затем на порт хоста назначения.
Опция -L указывает ssh создать перенаправление на удаленный порт:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname
Динамическая переадресация портов
Динамическая переадресация портов создает прокси-сервер SOCKS, который обеспечивает связь через ряд портов.
Чтобы создать динамическую переадресацию портов (SOCKS), передайте опцию -D клиенту ssh:
ssh -R LOCAL_PORT -N -f username@hostname
Шаг 4: Защита демона sshd
После установки сервера SSH, первым делом исправить файл sshd_config. В нем запретить удалённый доступ пользователя root и разрешить доступ только для доверенных пользователей. Настраиваем от непривилегированного пользователя, используя sudo.
Первое действие перед правкой любого файла — это бекап этого файла, делаем:
remuserbak@vps:~$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig password for remuserbak:
Посмотреть текущее настройки демона ssh
sudo sshd -T
Отключение SSH-логин для пользователя root, используя параметр PermitRootLogin no.
remuserbak@vps:~$ sudo nano etcsshsshd_config # Authentication: PermitRootLogin no # запретить удалённый доступ для root AllowUsers user1 user2 # список пользователей, которым разрешён доступ по SSH
После внесения изменений в sshd_config — перегружаем демона SSH
$ sudo systemctl restart ssh.service
Теперь при попытке залогинеться с пользователем root, в логах вы увидите запись:
User root from 222.187.238.57 not allowed because not listed in AllowUsers
Всё, у вас демон SSH минимально защищен!
Дополнительные параметры sshd_config, которые можно менять, под ваши задачи и условия, но не делайте это без нужды и предварительно изучите руководство man 5 sshd_config
- LoginGraceTime 120: Сервер отключается по истечении этого времени, если пользователю не удалась регистрация в системе. Если стоит значение 0, то время ожидания не ограничено. Значение по умолчанию — 120 секунд.
- StrictModes yes: Проверять наборы прав доступа и принадлежность конфигурационных файлов и домашнего каталога пользователя перед разрешением регистрации в системе. Это рекомендуется выполнять потому, что новички иногда оставляют свои каталоги или файлы доступными для записи всем. Значение по умолчанию — yes.
- AddressFamily inet: Семейство адресов которое должна использовать служба sshd, допустимые значения: any, inet (только IPv4) и inet6 (только IPv6). Значение по умолчанию — any.
- Port 22: Порт, на котором следует ожидать запросы на ssh соединение. Значение по умолчанию — 22.
Подключение через бастион
Как же нам теперь работать с внутренними сервисами, спросите Вы. А очень просто — я нарисую лишь варианты для ssh, однако один из них ( с пробросом порта), подойдет и для RDP и для VNC и для HTTP.
Сессия внутри сессии
Самый простой вариант — называется заходим на бастион сервер а потом заходим на нужный сервер. То есть сессия внутри сесии.
Shell
kirill@xxx:~$ ssh -q kirill.kazarin@bastion.example.com
kirill.kazarin@example.com@bastion:~$
kirill.kazarin@example.com@bastion:~$ ssh kirill.kazarin@wiki
kirill.kazarin@wiki’s password:
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-143-generic x86_64)
kirill.kazarin@wiki:~$
1 |
kirill@xxx~$ssh-qkirill.kazarin@bastion.example.com kirill.kazarin@example.com@bastion~$ kirill.kazarin@example.com@bastion~$ssh kirill.kazarin@wiki kirill.kazarin@wiki’spassword Welcome toUbuntu16.04.5LTS(GNULinux4.4.0-143-generic x86_64) kirill.kazarin@wiki~$ |
Как видно из лога выше, вначале произошла авторизация на бастион сервере, потом я залогинился на вики сервер. Вся авторизация прошла с данными моей учетной записи AD.
Проброс портов
Не буду тут копипастить — просто приведу ссылки на готовые статьи как этим пользоваться:
Основная схема:
ssh -f -N -L локальный_порт:удаленный_адрес:удаленный_порт сервер -p порт_удаленного_сервера
-f — Запросит ssh перейти в фоновый режим только перед выполнением команды. Это полезно если ssh собирается запросить пароль или парольную фразу, но пользователь хочет сделать это в фоновом режиме.
-N — Не выполнять удаленную команду. Это полезно если вы хотите только перенаправить порты
-L — Определяет заданный порт на локальной (клиентской) машине который будет перенаправлен к заданной машине и порт на удаленной машине.
1 |
ssh-f-N-Lлокальный_адреслокальный_портудаленный_адресудаленный_портпользователь@сервер-pпорт_удаленного_сервера -f-Запроситsshперейтивфоновыйрежимтолькопередвыполнениемкоманды.Этополезноеслиsshсобираетсязапроситьпарольилипарольнуюфразу,нопользовательхочетсделатьэтовфоновомрежиме. -N-Невыполнятьудаленнуюкоманду.Этополезноесливыхотитетолькоперенаправитьпорты -L-Определяетзаданныйпортналокальной(клиентской)машинекоторыйбудетперенаправленкзаданноймашинеипортнаудаленноймашине. |
Пример:
Jump через сервер
Я только покажу пример:
Shell
kirill@xxx:~$ head -n 5 ~/.ssh/config
Host stage04
HostName stage04
ProxyJump kirill.kazarin@bastion.example.com
User kirill.kazarin
kirill@xxx:~$ ssh stage04
kirill.kazarin@bastion.example.com’s password:
kirill.kazarin@stage04’s password:
Last login: Fri May 3 00:59:31 2019 from bastion
$
$ hostname
stage04
$ who
kirill.kazarin@example.com pts/0 2019-05-03 01:19 (bastion)
$ exit
logout
Connection to stage04 closed.
kirill@xxx:~$
1 |
kirill@xxx~$head-n5~.sshconfig Host stage04 HostName stage04 ProxyJump kirill.kazarin@bastion.example.com User kirill.kazarin kirill@xxx~$ssh stage04 kirill.kazarin@bastion.example.com’spassword kirill.kazarin@stage04’spassword Last loginFri May30059312019from bastion kirill.kazarin@example.com@stage04~$ kirill.kazarin@example.com@stage04~$hostname stage04 kirill.kazarin@example.com@stage04~$who kirill.kazarin@example.compts2019-05-030119(bastion) kirill.kazarin@example.com@stage04~$exit logout Connection tostage04 closed. kirill@xxx~$ |
А если при этом закинуть на бастион сервер свой ssh ключ и добавить в настройках ssh клиента директиву IdentityFile с полным путем до ключа — то вообще получается сказка!
Как этим пользоваться
В веб интерфейсе в меню “Удаленный доступ” появилось два пункта “Hive Shell Start” и “Hive Shell Stop”:
После запуска сервиса через пункт меню “Hive Shell Start” вы увидите результат выполнения команды:
Результат данной команды представляет собой кликабельную ссылку, нажав на которую в вкладке браузера вы откроете окно терминала воркера.
Также можно открыть результат выполнения команды, чтобы воспользоваться дополнительными возможностями команды, такими как передача веб-ссылки техническому специалисту или подключение, используя SSH клиент (будет рассмотрено отдельно).
Внимание! Передавайте ссылку для доступа к Вашему воркеру только лицу, которому Вы доверяете. Так это работает:
Так это работает:
Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH
С помощью директив (перечислены в порядке обработки) DenyUsers, AllowUsers, DenyGroups и AllowGroups и шаблонов можно настроить разрешения для доступа к SSH по IP.
Рассмотрим несколько примеров. Если в файл sshd_config добавить фильтрацию с AllowUsers:
AllowUsers johndoe@192.168.1.* admin2@192.168.1.* otherid1 otherid2
Это разрешит доступ для johndoe и admin2 только с адресов 192.168.1.*, а для otherid1, otherid2 доступ будет открыт с любого адреса.
Чтобы разрешить доступ к SSH любым пользователям, но только с определённых IP, в файле /etc/ssh/sshd_config используйте директиву AllowUsers с подстановочным символом:
AllowUsers *@192.168.1.100
Или:
AllowUsers *@ИМЯ_ХОСТА
Возможно ограничить ключ ssh или ключ на основе ca набором адресов в файле .ssh/authorized_keys домашнего каталога данного пользователя:
from="192.168.1.*,192.168.2.*" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA...etc...mnMo7n1DD useralias
В этом примере открытый ключ для useralias будет действовать только с заданных адресов.
Как включить форвардинг (пересылку) X11 с использованием ssh
Пересылка X11 — это механизм, который позволяет графическому интерфейсу программ X11, запущенных на удалённом сервере Linux, быть отображёнными на локальной клиентской машине. За сценой, вывод X11 удалённо запущенной программы, санкционирован для отправки на локалхост через соединение X11 между клиентом и удалённым сервером. SSH имеет опции для безопасного туннелирования таких X11 соединений так, что сессия пересылки X11 получается зашифрована и инкапсулирована. Если вы хотите настроить форвардинг X11 через SSH, то ознакомьтесь с этой инструкцией.
Для пересылки X11, не требуется, чтобы на удалённый серверный хост имел полную установленную систему X11. Тем не менее на серверном хосте нужен как минимум установленный xauth. xauth — это утилита, которая поддерживает конфигурацию Xauthority, используемую сервером и клиентом для аутентификации X11 сессий. Для установки xauth, сделайте следующее на удалённом сервере:
Для Debian, Linux Mint, Ubuntu, Kali Linux и их производных:
sudo apt install xauth
На Arch Linux и производных:
sudo pacman -S xorg-xauth
Затем включите перенаправление X11 в sshd, добавив в файл /etc/ssh/sshd_config директиву:
X11Forwarding yes
Чтобы изменения вступили в силу, перезапустите службу sshd.
Вышеприведённая настройка включит пересылку X11 на всей системе серверного хоста. Если вместо этого вы хотите включить пересылку X11 на основе индивидуального пользователя, вы можете использовать специфичный для каждого пользователя конфигурационный файл ssh (например, $HOME/.ssh/config). Таким образом, вы можете использовать пересылку X11 только когда вы запускаете ssh в конкретном пользовательском аккаунте.
В отличие от удалённого серверного хоста, машине с локальным клиентом нужна установленная система X11 для отображения удалённой запущенной программы X11. Если всё так, то в этом случае вы можете открыть ssh соединения из локальной машины на удалённый сервер следующим образом.
ssh -X ПОЛЬЗОВАТЕЛЬ@УДАЛЁННЫЙ_СЕРВЕР
После входа, вы можете обычным образом запустить любую программу X11 на удалённом сервере, и её вывод будет отображён на локальной клиентской машине.
Утилиты SSH
К серверным утилитам OpenSSH относятся:
- sshd (OpenSSH Daemon) — программа демон для ssh. sshd ожидает подключений от клиентов.
- sftp-server (серверная подсистема SFTP) — это программа, которая участвует в передачи файлов по протоколу SFTP. sftp-server не предназначен для прямого вызова, обычно она задействуется автоматически демоном sshd.
Итак, на сервере основного внимания требует sshd, а программа sftp-server будет запущена автоматически по мере необходимости.
К клиентским утилитам OpenSSH относятся:
- ssh (клиентская программа SSH) — это программа для выполнения входа на удалённую машину и выполнения команд на этой удалённой машине.
- scp — программа для копирования файлов на удалённую машину с локальной, или в обратном направлении — с локальной на удалённую. При передаче данных используется зашифрованный канал.
- sftp — это тоже программа для передачи файлов по безопасному каналу. Эта программа похожа на ftp.
- ssh-keygen — утилита для создания ключей аутентификации и управления ими. Также она может использоваться для отзыва ключей.
Это основные программы, которые могут понадобиться большинству пользователей для создания ключей, подключения к удалённой машине и при удалённом копировании файлов.
Следующие утилиты присутствуют в пакете OpenSSH, но не требуют от пользователя явного запуска или применяются редко:
- ssh-add — добавляет приватный ключ к агенту аутентификации.
- ssh-agent — это программа для хранения закрытых ключей, используемая для аутентификации с открытым ключом (RSA, DSA, ECDSA, Ed25519). ssh-agent обычно запускается в начале сеанса X или сеанса входа в систему, а все другие окна или программы запускаются как клиенты для программы ssh-agent. Благодаря использованию переменных среды агент может быть найден и автоматически использован для аутентификации при входе на другие машины с использованием ssh.
- ssh-keyscan — это утилита для сбора открытых ключей хоста SSH с нескольких хостов. Она была разработана для помощи в создании и проверке файлов ssh_known_hosts. ssh-keyscan предоставляет минимальный интерфейс, подходящий для использования скриптами оболочки и perl.
- ssh-keysign — используется ssh для доступа к ключам локального хоста и генерирования цифровой подписи, необходимой во время аутентификации на основе хоста. ssh-keysign отключена по умолчанию и может быть включена только в глобальном файле конфигурации клиента /etc/ssh/ssh_config, если для EnableSSHKeysign установлено значение «yes». ssh-keysign предназначена не для вызова пользователем, а из ssh.
- ssh-copy-id — использует локально доступные ключи для авторизации на удаленном компьютере.
Для чего нужен Team Shell
С помощью Team Shell вы сможете решить следующие задачи:
- Управление доступом по SSH. На один из серверов в инфраструктуре, к которой требуется подключение по ssh, ставится софт, который в терминологии team shell называется node. Нода связывается с сервером управления. На ноде настраивается, к каким серверам можно будет подключаться по ssh. Далее с помощью нативного клиента, который есть под все популярные операционные системы (Windows, Linux, MacOS) настраивается доступ к целевому серверу конкретному пользователю. Пользователь, которому нужно подключиться по ssh, использует клиент, авторизовывается в системе и получает соответствующие права доступа к целевому серверу. Далее он подключается по ssh через этот же клиент. Ему не нужно давать ни пароль, ни сертификат. Он подключается строго через программу-клиент. Когда нужно закрыть доступ, у пользователя просто отключаются права на подключение к конкретному серверу. В качестве клиента выступает как приложение с GUI, так и полностью консольное, которое представляет из себя готовый пакет или просто бинарник.
- Логирование команд и запись консоли. При подключении по ssh через клиент, записываются как все команды пользователя, так и экран консоли. Причем все эти данные хранятся централизованно на сервере и сам пользователь не может их удалить, если у него нет соответствующих прав. К каждой команде привязывается метка на записи, так что можно в любой момент посмотреть вывод экрана при вводе той или иной команды. Это очень крутая и функциональная штука. Работает просто и удобно. Дальше я покажу это на примере.
- Совместный доступ к консоли. Можно одновременно подключиться в один сеанс и работать с консолью совместно. При этом будет доступен чат. Получается некий аналог TeamViewer, только для консоли. Так же вместе можно смотреть записи сеансов, разбирать их. Думаю, такая штука может быть полезна для онлайн обучения, когда лектор и ученик смогут совместно разбирать урок. Либо преподаватель сможет проверять домашние задания.
- Менеджер соединений. Как я уже сказал выше, подключение к серверам происходит через нативное приложение, которое является в том числе менеджером подключений. При этом все настройки хранятся на сервере. Вам достаточно где угодно установить приложение, залогиниться и получить доступ ко всем своим настроенным соединениям. Доступ защищен с помощью двухфакторной аутентификации (2FA).
- Ограничение на запуск команд по ssh. Вы можете не открывать полный доступ к подключению по ssh. С помощью Team Shell можно разрешить запускать только какие-то определенные команды. К примеру, кому-то из саппорта вы можете разрешать запускать только одно приложение. Например, htop, если пользователь жалуется на то, что у него тормозит вируталка. Саппорт подключается к ней, запускает htop, смотрит, кто съедает все процессорное время и отвечает клиенту, что у него apachе запущен в 50-ти экземплярах. Либо какому-нибудь админу по базам данных можно разрешить запускать только консоль pgsql или mysql.
- Использование в качестве менеджера SSH соединений. Для неискушенного пользователя TeamShell может заменить менеджер ssh подключений. Да, у него не так много настроек и возможностей именно как менеджера, но зато присутствуют явные плюсы, которые следуют из принципа его работы. Можно закрыть ноутбук, уйти на обед и потом начать с того же места без потери сеанса, так как при разрыве интернет соединения, сам ssh сеанс с сервером не разрывается. В дополнение к этому вы тут же в приложении видите все свои прошлые команды, что может облегчить работу. Так же вы можете при подключении сразу запускать нужное вам приложение, например, консоль pgsql. Об этом я подробно расскажу далее. Еще один явный плюск к TeamShell, как менеджеру ssh — откуда бы вы не запустили терминал, после аутентификации, вы получите все свои настроенне ssh подключения.
Шаг 3: Предоставление административных привилегий
На втором шаге был создан пользователь remuserbak, но администрировать с ним сервер нельзя, ибо нет у него прав таких! Придется дать ему возможность становится рутом, как говорится с чего начали — тем и закончили.
Чтобы избежать необходимости выходить из системы обычного пользователя и снова входить в систему как учетная запись root, мы можем настроить так называемые привилегии суперпользователя или root для нашей обычной учетной записи. Это позволит нашему обычному пользователю запускать команды с административными привилегиями, помещая слово sudo перед каждой командой.
Чтобы добавить эти привилегии нашему новому пользователю, нам нужно добавить пользователя в группу sudo. По умолчанию пользователям, которые являются членами группы sudo, разрешено использовать команду sudo.
От имени пользователя root выполните команду usermod, чтобы добавить нового пользователя в группу sudo (замените имя пользователя своим новым пользователем:
root@vps:~# usermod -aG sudo remuserbak
Проверим командой id добавился ли пользователь в группу sudo
root@vps:~# id remuserbak uid=1000(remuserbak) gid=1000(remuserbak) groups=1000(remuserbak),27(sudo)
Теперь, когда вы войдя в систему как обычный пользователь remuserbak, можете ввести sudo перед командами, чтобы выполнять действия с привилегиями суперпользователя (root).
Установка OpenSSH клиента
Клиентская программа OpenSSH вызывается ssh и может быть вызвана из терминала. Клиентский пакет OpenSSH также предоставляет другие утилиты SSH, такие как scp и sftp, которые устанавливаются вместе с командой ssh.
Установка клиента OpenSSH в Linux
Клиент OpenSSH по умолчанию предустановлен в большинстве дистрибутивов Linux. Если в вашей системе не установлен клиент ssh, вы можете установить его с помощью менеджера пакетов вашего дистрибутива.
Установка OpenSSH клиента в Windows 10
Большинство пользователей Windows используют Putty для подключения к удаленному компьютеру через SSH. Однако последние версии Windows 10 включают в себя клиент и сервер OpenSSH. Оба пакета могут быть установлены через графический интерфейс или PowerShell.
Чтобы найти точное имя пакета OpenSSH, введите следующую команду:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Команда должна вернуть что-то вроде этого:
Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent
Как только вы узнаете имя пакета, установите его, выполнив:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
В случае успеха вывод будет выглядеть примерно так:
Path : Online : True RestartNeeded : False
Что такое SSH-туннель?
Под данным термином подразумевается шифрование данных идущих по конкретному каналу (туннелю). Все данные шифруются на одном конце соединения, и дешифруются на другом. Благодаря этому, даже если они будут перехвачены третьими лицами, то злоумышленники не смогут ими воспользоваться.
Создание такого «туннеля», может проводиться по нескольким сценариям:
- VPN-туннель. Данный способ можно использовать для любых приложений;
- Специальные программы, что работают через SSH;
- Socks-прокси;
- При необходимости работать с определенным сервером, то есть вариант настройки соединения на нужный TCP-порт.
Какие задачи разумно решать шеллом?
- интерактивная работа в терминале:
- выполнение компиляции, запуск заданий через make;
- сравнение текстовых файлов;
- быстрый ad-hoc анализ данных (количество уникальных ip в логе, распределение записей по часам/минутам и т.п.);
- разовые массовые действия (прибить много процессов; если работаете с системой контроля версий — ревертнуть или зарезолвить кучу файлов);
- диагностика происходящего в системе (семафоры, локи, процессы, дескрипторы, место на диске и т.п.);
- скриптование:
- установочные скрипты, для выполнения которых нельзя рассчитывать на наличие других интерпретаторов — это не для новичков;
- функции для кастомизации интерактивного шелла (влияющие на приглашение, меняющие каталог, устанавливающие переменные окружения) — тоже не совсем для новичков;
- одноразовые скрипты типа массового перекодирования файлов;
- makefile-ы.
Абсолютно первые шаги
Кто я, где я?
- — выводит имя машины (сервера), на которой вы сейчас находитесь;
- — выводит ваш логин (ваше имя в системе);
- — псевдографическое изображение дерева каталогов на машине; выход из пролистывания — ;
- — выводит каталог, в котором вы сейчас находитесь; в командной строке вы не можете быть «просто так», вы обязательно находитесь в каком-то каталоге (=текущий каталог, рабочий каталог). Вероятно, текущий рабочий каталог выводится у вас в приглашении (prompt).
- — список файлов в текущем каталоге; — список файлов в указанном каталоге;
man
- 1 — исполняемые программы и шелльные команды (, , и т.п.);
- 2 — системные вызовы (, и т.п.)
- 3 — библиотечные функции (, , , ).
Что делать, когда что-то непонятно
- насколько возможно четко сформулируйте вопрос или задачу — нет ничего сложнее, чем решать «то, не знаю что»;
- вспомните, сталкивались ли вы уже с такой же или подобной проблемой — в этом случае стоит попробовать решение, которое сработало в прошлый раз;
- почитайте подходящие man-ы (если понимаете, какие man-ы подходят в вашем случае) — возможно, вы найдете подходящие примеры использования команд, нужные опции или ссылки на другие команды;
- подумайте: нельзя ли немного поменять задачу? — возможно, чуть-чуть изменив условия, вы получите задачу, которую уже умеете решать;
- задайте свой четко сформулированный вопрос в поисковой системе — возможно, ответ найдется на Stack Overflow или других сайтах;
Методы работы
Скопировать-и-вставитьЧитать manВытащить из истории предыдущую команду, добавить в конвейер еще одну команду, запустить, повторить
Базовые команды
- переход в другой каталог: ;
- просмотр содержимого файлов: , , , ;
- манипуляции с файлами: , , ;
- просмотр содержимого каталогов: , , ;
- структура каталогов: , (можно передать в качестве параметра каталог);
- поиск файлов: ;
Аналитика
- , ;
- — сортировка по указанному полю;
- — числовая соритровка;
- — сравнение файлов;
- , , , , — поиск текста;
- , — уникализация строк;
- — в варианте , чтобы оставить только первое поле из каждой строки, можно менять на , и т.д.;
Диагностика системы
- — информация о процессах (запущенных программах), работающих на машине;
- — интерактивный просмотр самых ресурсоемких процессов;
- — занятое и свободное место на диске;
- — суммарный размер файлов в каталоге (рекурсивно с подкаталогами);
- , — какие системные вызовы выполняет процесс;
- — какие файлы использует процесс;
- , — какие порты и сокеты открыты в системе.
Массовое и полуавтоматическое выполнение
- — проврека условий;
- — цикл по строчкам ;
- — подстановка строк из в параметры указанной программе;
- — генерация последовательностей натуральных чисел;
- — объединить вывод нескольких команд;
- — выполнить одно за другим;
- — выполнить при условии успешного завершения первой команды;
- — выполнить при условии неудачного завершения первой команды;
- — продублировать вывод программы в и в файл на диске.
Разное
- — текущая дата;
- — скачивает документ по указаному url и пишет результат на ;
- — обновить дату модификации файла;
- — послать процессу сигнал;
- — ничего не делает, возвращает истину, полезна для организации вечных циклов;
- — выполнить команду от имени ‘а.
Выводы
На сегодняшний день, использование сетевого протокола SSH, является одним из самых эффективных способов защиты канала передачи данных. Его главным преимуществом, является использование открытого и закрытого ключа при соединении клиента с сервером, что позволяет свести до минимума вероятность того, что к вашему каналу подключится кто-то третий.
Наиболее распространенным вариантом, сегодня является OpenSSH, благодаря возможности бесплатного использования и открытому коду, что позволяет оптимизировать все под свои нужды.
На сегодняшний день, использование сетевого протокола SSH, отлично поддерживается многими ОС, как для клиента, так и для сервера.
Очень важным моментом можно назвать то, что клиент и сервер для протокола SSH, требуют специальной настройки, которая далеко не всегда по силам человеку, не обладающему определенными знаниями. Именно поэтому многие хостинги предлагают своим клиентам услуги по созданию и настройке защищенного соединения.