Работа с SFTP в Total Commander

Одна из наиболее тривиальных задач веб-разработчика — это размещение файлов сайта на сервере. Каждый разработчик сталкивается с этой задачей регулярно и не придает ей особого значения. Однако, традиционный способ размещения файлов на сервере через протокол FTP небезопасен, так как требует введения пароля, который большинство из нас сохраняет в своей любимой программе для работы с FTP. Эти пароли – первое, что крадет любой уважающий себя троян. Конечно, можно поставить себе антивирус и надеяться, что вирус не попадет к вам на компьютер раньше, чем в антивирусные базы. Но есть способ лучше — SFTP.

Что такое SFTP

SFTP – это аббревиатура от SSH File Transfer Protocol. Проще говоря, это безопасная версия FTP, точно так же, как HTTPS – безопасная версия HTTP. Единственное требование для использования такой схемы доступа – поддержка SSH на стороне сервера. И хотя такая поддержка – стандарт, некоторые хостинг провайдеры предоставляют SSH доступ только по требованию клиента (один раз меня даже просили предоставить скан паспорта).

Все данные передаются через SFTP в зашифрованном виде, так что кража этих данных в процессе передачи (Man in the middle attack) бессмысленна, в то время как данные и даже пароль к FTP передается на FTP-сервер в открытом виде. Конечно, троян может украсть этот пароль так же легко, однако все остальные угрозы, которые я упоминал, исключены. Кроме того, можно настроить подключение по ключу, тогда и троян окажется неэффективен.

Что такое SSH

SSH – это аббревиатура от Secure Shell. Он используется для удаленного управления сервером, позволяет выполнять на нем команды и, как видно из названия, является защищенным. Наиболее распространенной программой для работы с SSH для ОС Windows является PuTTY. Именно на ней основан описываемый в статье плагин для Total Commander. Это позволяет ему работать с соединениями, которые уже были настроены в PuTTY.

Установка плагина для Total Commander

Последнюю версию SFTP-плагина можно скачать с сайта проекта. Установка плагина ничем не отличается от установки любого другого плагина для Total Commander: копируем файлы плагина в подпапку plugins установочной папки Total Commander. У меня файлы плагина располагаются в папке C:\Program Files\Total Commander\Plugins\sftp4tc. Далее заходим в настройки Total Commander, выбираем из списка пункт «Plugins», нажимаем на кнопку «Configure» напротив пункта «File system plugins». В открывшемся диалоговом окне нажимаем кнопку «Add» и указываем путь к файлу plugin_sftp.wfx. После этого сохраняем изменения в конфигурации нажатием кнопки «OK».

Так выглядит диалог настроек плагинов в Total CommanderТак выглядит диалог настроек плагинов в Total Commander

Работа с плагином

Теперь в сетевом окружении в Total Commander доступен новый пункт меню. У меня он называется «Secure FTP Connections». Это и есть наш плагин. В нем отображаются все доступные соединения. Если до этого у вас была установлена программа PuTTY, то вы увидите в этом списке свои соединения. В противном случае вы можете создать новое соединение, нажав на пункте «edit connections». Интерфейс настройки соединений, по сути, является интерфейсом программы PuTTY, но знакомым с ней все равно рекомендую прочесть о настройке соединения, так как есть важные нюансы.

Окно настроек плагинаОкно настроек плагина

Итак, первое, что нам необходимо для настройки соединения – это данные для доступа к серверу по SSH: домен, имя пользователя и пароль. Домен вводим в поле «Host name (or IP address)» на исходном экране интерфейса настройки, выбираем «SSH» как значение поля «Connection type». Затем переходим на вкладку «Data» в разделе «Connection» и вводим логин в поле «Auto-login username». Знакомые с PuTTY возразят, что логин можно было ввести вместе с доменом, однако в данном плагине это не работает! Теперь переходим обратно на вкладку «Session», придумываем и вводим название соединения в поле «Saved Sessions» и нажимаем «Save». К сожалению, если вы не используете авторизацию по ключу, пароль придется вводить при каждом подключении.

После настройки соединения вы можете подключаться к серверу, нажав Enter на имени этого соединения в списке. Далее работа с сервером не отличается от работы через FTP соединение в Total Commander.

Работа по SFTP не отличается от работы по FTPРабота по SFTP не отличается от работы по FTP

Одно существенное отличие между подключением к серверу через FTP и SFTP заключается в том, что FTP ограничивает доступную область файловой системы личными папками пользователя, в то время как при соединении через SFTP вы попадаете в корень файловой системы сервера. Для настройки локации по умолчанию в интерфейсе настройки соединения есть дополнительный пункт, которого нет в программе PuTTY – «SFTP4TC». Там есть параметр home dir, в котором можно указать путь к локации по умолчанию. Обычно я пишу здесь путь к директории своего пользователя на сервере.

Если вы не уверены, где на сервере находится эта директория, введите в командной строке Total Commander команду «cd » (без кавычек, – в конце пробел), это ее откроет. Теперь путь к вашей пользовательской директории написан в адресной строке над списком файлов на сервере. Главное – убрать имя плагина и соединения, и заменить обратные косые черты на обычные. У вас должно получиться нечто вроде «/home/poupkine» (обратите внимание на косую черту в самом начале, она необходима).