Переадресация команд: применение переадресации команд для непосредственного выполнения скриптов и каналов
Переадресация команд: применение переадресации команд для непосредственного выполнения скриптов и каналов
Переадресация (перенаправление) команд – одна из наиболее полезных возможностей протокола SSH. Она вытекает из его основополагающих принципов построения, когда был заново реализован целый ряд приложений r* операционной системы UNIX. У протокола SSH есть хорошо понятная возможность выполнения удаленных команд так, как будто это локальные команды. Например, вместо ввода
effugas@OTHERSHOE ~
$ ssh effugas@10.0.1.11
effugas@10.0.1.11”s password:
FreeBSD 4.3-RELEASE (CURRENT-12-2-01) #1: Mon Dec 3
13:44:59 GMT 2001
$ uptime
3:19AM up 18 days, 8:48, 5 users, load averages: 2.02,
2.04, 1.97
$можно ограничиться следующими командами:
effugas@OTHERSHOE ~
$ ssh effugas@10.0.1.11 uptime
effugas@10.0.1.11”s password:
3:20AM up 18 days, 8:49, 4 users, load averages: 2.01,
2.03, 1.97Действительно, можно образовать канал вывода между хостами, например так, как это показано в приведенном ниже простейшем примере:
effugas@OTHERSHOE ~
$ ssh effugas@10.0.1.11 “ls –l” | grep usocks
effugas@10.0.1.11”s password:
drwxr-xr-x 2 effugas effugas 1024 Aug 5 20:36
usocksd-0.9.3
-rw-r—r– 1 effugas effugas 54049 Jan 14 20:21
usocksd-0.9.3.tar.gzПодобные функциональные возможности необычайно полезны для создания сетевых туннелей. Основная идея туннелей заключается в том, что нечто создает поток данных через обычно непреодолимые границы сетей. В данном случае разделенные границами сети немного напоминают аппаратные средства, поделенные на совершенно не связанные между собой блоки. (Требуется приложить много усилий для эффективного обособления программ и информационных файлов. Если этого удается добиться, то отказ в одной части программного кода почти никак не влияет на работу всего кода в целом и не приводит к отказу еще чего-нибудь благодаря абсолютной защите памяти, планированию работы центрального процессора и т. д. Между тем простое выполнение почтового сервера или Web-сервера читателя на различных системах при условии, что их много и они могут быть распределены по всему земному шару, предоставляет совершенно другой класс разделения процессов.) SSH превращает каналы в коммуникационную подсистему между хостами. В этих условиях становится справедливым следующее правило . Почти всегда можно использовать канал для передачи данных между процессами. При этом протокол SSH позволяет процессам разных хостов оставаться локальными.
Данный текст является ознакомительным фрагментом.