Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Linux образца 2007 года на домашнем компьютере

(С) В.А.Костромин, 10 февраля 2008 г.

Mandriva 2007 Spring. Часть 4. FTP и SSH

Предыдущая заметка

FTP-клиент

Что касается FTP-клиента, я уже показывал в первой заметке этой серии, что в Midnight Commander имеется встроенный ftp-клиент, который меня вполне устраивает. Надо только найти, каким образом сохранить команду для создания FTP-соединения. Поскольку непосредственно в MC просматривать встроенную подсказку нет возможности, я открыл файл подсказки /usr/share/mc/mc.hlp.ru в редакторе Kate. Про FTP-соединение там нашлись следующие рекомендации.

Файловая система ftpfs позволяет Вам работать с файлами на удаленных компьютерах. Для этого Вы можете использовать команду "FTP-соединение" (доступную из меню левой и правой панелей) или же непосредственно сменить текущий каталог командой cd, задав путь к каталогу следующим образом:
/#ftp:[!][user[:pass]@]machine[:port][remote-dir]

Элементы user, port и remote-dir не обязательны. Если элемент user указан, то Midnight Commander будет пытаться логироваться на удаленный компьютер с этим именем, в противном случае будет использовано то имя, с которым Вы логировались на локальный компьютер.

Необязательный элемент pass (если указан) используется как пароль для входа. Однако явно задавать его не рекомендуется (также не записывайте его в Ваши hotlist, если только Вы не обеспечили соответствующую защиту этих файлов; но и тогда нельзя быть полностью уверенным в безопасности).

Примеры:
    /#ftp:ftp.nuclecu.unam.mx/linux/local
    /#ftp:!behind.firewall.edu/pub
    /#ftp:guest@remote-host.com:40/pub

Для того, чтобы соединиться с сервером, который расположен за firewall, Вы должны использовать префикс ftp://! (то есть добавить восклицательный знак после двойного слэша), чтобы указать Midnight Commander на необходимость использования прокси для осуществления передач по ftp. Вы можете задать имя прокси в диалоговом окне Виртуальные ФС...(Virtual FS) меню "Настройки".

Таким образом, обращение к удаленному FTP-серверу осуществляется простой командой cd. И, действительно, задав в командной строке команду

cd /#ftp:login_name@rus-linux.net
(login_name я, естественно, ввел правильное) я получил запрос на ввод пароля, после чего успешно вошел на сайт.

Однако надо заметить, что такая команда срабатывает только в том случае, если она запущена из вкладки "FTP-соединение", либо из командной строки Midnight Commander, но только при включенных панелях. Если отключить панели (комбинацией клавиш Ctrl+O) или выйти в "чистую" оболочку, та же команда не срабатывает. То есть MC играет в этом соединении существенную роль!

Видимо именно по этой причине в реализации желания не набирать эту команду каждый раз у меня возникли сложности. Вначале я попытался занести ее в локальное меню пользователя, вызываемое по клавише F2. Само это меню хранится в файле ~/.mc/menu. Я создал такой файл и прописал в него две строки
f       FTP-соединение с rus-linux.net
	cd /#ftp:login_name@rus-linux.net
Однако выполняться через меню команда отказалась, выдав сообщение "Нет такого файла или каталога".

Я попытался воспользоваться историей команд. С тем же успехом. Только тут я сообразил, что в выполнении соединения по FTP существенную роль играют механизмы, заложенные в MC. Так что придется вводить команду в строку ввода "FTP-соединение" заново. Конечно, это не глобальная проблема, просто маленькая неприятность. Так что разбираться с FTP заканчиваю.

SSH-клиент

Как известно, FTP-протокол не защищен от перехвата пароля. А у меня уже был случай, когда к моему сайту каким-то образом добрались злумышленники и многое мне подпортили. Не хотелось бы нарываться на неприятности повторно. Между тем, я знаю, что мой хостер предоставляет доступ и по SSH. Простейший способ подключиться - выполнить команду
ssh login_name@rus-linux.net
Если в ответ на запрос пароля ввести его правильно, появится изменённое приглашение для ввода команд, то есть мы оказались в оболочке на удаленной машине. Можно выполнять команды, например, запустить там MC. Можно даже, говорят, запустить там графическую оболочку (сам я не пробовал). Но меня это не интересует, моя задача - передать на удаленную машину несколько файлов. Поискав среди ссылок, собранных на соответствующей странице своей "Виртуальной энциклопедии", я нашел неплохую статью "Хитрости SSH", в которой даны соответствующие рецепты. Не буду пересказывать ее содержание. В частности, там утверждается, что можно подключить удаленный сервер в одну из панелей MC, если воспользоваться командой "Меню - {Правая панель/Левая панель} - Shell-соединение". Все должно происходить вполне аналогично тому, как и подключение по протоколу ftp. Только в строке ввода нужно ввести
/#sh:login_name@rus-linux.net
Обратите внимание на то, что указывается sh, а не ssh. Как утвержается в подсказке по MC, по умолчанию используется именно ssh, хотя можно специальной опцией задать использование rsh. Однако, как я понял, в моем случае подключение происходило по протоколу fish (по крайней мере именно это было обозначено у в командной строке). Да и с ним у меня что-то не заладилось. Подключение происходило, но отображался в панели MC не мой домашний каталог на удалеyном сервере, а каталог /home, причем пустой, и перейти в свой домашний каталог никак не удавалось.

В той же статье говорится, что можно аналогичным образом использовать ssh в Konqueror и Nautilus. Но Nautilus в Mandriva+KDE отсутствует, а в Konqueror мне добиться положительног результата не удалось. В меню программы я ничего похожего не нашел, и подсказка мне не помогла. Между прочим, встроенная справка к Konqueror сильно устарела, датирована 2003 годом.

Еще один вариант подключения, предлагаемый в той же статье "Хитрости SSH", а именно, мо нтирование удаленного каталога через ssh, у меня тоже не пошел. В результате, потратив почти два вечера на попытки настроить соединение с сервером по ssh, я эти попытки забросил.

Следующая заметка