При работе с удалёнными системами одной, пожалуй, из самых часто-используемых утилит системными администраторами и многими пользователями является ssh. Простая, надёжная, проверенная. Однако не каждый знает, что варианты использования secure shell более разнообразны, чем простое подключение к удалённой оболочке. Сегодня мы рассмотрим пять интересных трюков с ssh и с scp, которые многим могут пригодиться в работе и скрасить трудовые будни администраторов, разработчиков и простых пользователей.
X-сессия через SSH-туннель
Иногда бывает необходимо запустить X-приложение на удалённом хосте, при этом графический ввод-вывод перенаправить на локальный. Кроме традиционных вариантов с использованием XDMCP существует многим известный способ перенаправить ввод-вывод X-сессии в SSH-туннель.
Первым делом убедитесь, что в конфигурации вашего демона SSH включена опция X11Forwarding, разрешающая перенаправление X-сессии. В файле, расположенном обычно в /etc/ssh/sshd_config, раскомментируйте или добавьте строку:
X11Forwarding yes
Имейте ввиду, что включение этой опции снизит потенциальный уровень защищённости вашего сервера, так что не стоит включать её без необходимости.
После того, как будет изменено содержимое конфигурационного файла SSH-сервера, его необходимо перезапустить:
$ sudo service ssh restart
Теперь со стороны клиента можно инициировать SSH-подключение с перенаправлением X-сессии:
$ ssh -X user@host
И после того, как авторизуетесь, можно запускать любые X-приложения, например:
$ gnome-terminal
Или, как вариант, можно запустить приложение в «фоновом режиме», т. е. не оставаясь подключённым к удалённой оболочке:
$ ssh -Xf user@host gnome-terminal
Поиск фалов на удалённом компьютере
Очень полезно бывает иногда найти файлы на удалённом компьютере, получив результаты поиска в локальном терминале. Сделать это очень просто. Например:
$ ssh user@host "find /home/user -iname '*.mp3'"
Само-собой, подобным образом вы можете выводить локально результаты работы любой удалённой команды.
Редактирование удалённых файлов в Vim
Вовсе необязательно подключаться к удалённой оболочке и редактировать файл непосредственно на сервере. Некоторым нравится делать это локально. Следующая команда запустить Vim, безопасно скопирует удалённый файл при помощи scp и после выхода из редактора обновит изменения на сервере, если таковые будут:
$ vim scp://user@host//etc/samba/smb.conf
Кстати, помимо всего прочего, если соединение с сервером вдруг оборвётся, вас это не будет никоим образом волновать. Всё происходит локально, так что обрыв соединения с удалённым сервером не грозит вам потерять результаты работы.
Воспроизведение музыки с удалённого сервера
Этот трюк, может быть, многим и не будет столь полезен, однако он прост, интересен и о нём просто нельзя не упомянуть. Данным способом можно прослушивать ваши звуковые файлы, расположенные на удалённом хосте, не копируя их в локальную систему:
Смысл тот же, что и в случае с воспроизведением звука, только здесь речь идёт о видеофайлах и вместо mpg123 используется всем известный vlc, умеющий воспроизводить видеопоток в том числе и из стандартного ввода: