Intereting Posts
Проблемы с размещением объекта объекта Spamassassin после перезапуска Существуют ли какие-либо недостатки для запуска графического интерфейса на сервере CentOS? Установка Fedora на жесткий диск: ошибка проверки конфигурации хранилища Как увеличить размер файловой системы для соответствия раздела Недостатки использования www-данных для входа в систему Нет меню grub после установки Ubuntu, загрузка непосредственно в Ubuntu как получить статус выхода из команды в сценарии ожидания проверка данных в столбцах, когда данные или некоторые могут отсутствовать или присутствовать? Автозаполнение для недоступных каталогов Где приложение должно сохранять рабочие файлы? Как создать набор файлов в Linux? Ошибка apt-get: не удалось найти драйвер метода / usr / lib / apt / methods / https Как вывести количество всех файлов с «tty» в имени файла в каталоге Linux, где хранятся файлы на системных устройствах Как удалить файлы, символические в одной папке, но оставить свои подкаталоги без изменений? Есть ли команда, чтобы увидеть, где установлен диск?

Как rysnc работает над ssh?

Когда программа rsync вызывается над ssh, как выглядит взаимодействие между rsync и ssh? Какая особенность ssh используется rsync? Меня интересует взаимодействие между rsync и ssh.

ssh предоставляет подключенный поток из локальной системы, запускающей ваш rsync в другой экземпляр, запущенный на удаленном сервере. Локальный rsync запускает его как часть процесса подключения ssh – это не тот же экземпляр rsync который может быть запущен как демон на этом удаленном сервере.


Что такое поток ssh ?

Поток ssh – это то, что вы используете, когда вы используете ssh для удаленной системы. Вы можете назвать его сеансом ssh . Хорошо. Например, ssh snow@grumpy.example.net подключит вас к этой удаленной системе и даст вам интерактивный сеанс. Все, что вы набрали локально, будет получено и будет действовать удаленно, и все, что было бы отдаленно отдано, будет представлено вам локально.

Аналогично, ssh -t snow@doc.example.net vi /etc/hosts установит соединение для запуска vi /etc/hosts в удаленной системе, как если бы вы использовали его локально. (Флаг -t сообщает ssh чтобы убедиться, что удаленная команда vi запущена на псевдотерминале, иначе она пропустит этот уровень сложности.)

Теперь для rsync соединение устанавливается локальным экземпляром с чем-то вроде ssh snow@bashful.example.net rsync --server -nlogDtpre.iLsf {local_path} {remote_path} . Это позволяет локальному rsync разговаривать с удаленным rsync по соединению, как если бы вы использовали для доступа к тому же удаленному серверу. Удаленный экземпляр rsync знает, что это сервер из-за флагов, которые были предоставлены при запуске локальным экземпляром.

Вы можете видеть, как rsync был вызван удаленно, запустив что-то вроде ssh snow@dopey.example.net 'ps -ef | grep [r]sync' ssh snow@dopey.example.net 'ps -ef | grep [r]sync' то время как rsync выполняется.

Почему бы просто не поговорить rsync без ssh ?

Преимущество использования ssh двоякое

  1. Это хорошо известный протокол, и механизмы аутентификации и входа в удаленную систему хорошо поняты (теми, кто должен это понимать), и доверенными
  2. Он обеспечивает безопасный и зашифрованный канал, по которому можно безопасно передавать любые конфиденциальные данные. Без этого уровня rsync либо должен был бы реализовать свое собственное шифрование, либо игнорировать проблему. Оба являются опасными в современном мире, подключенном к Интернету.