From: Porco <ddpaul@mail.ru.>
Newsgroups: email
Date: Mon, 2 Jun 2006 18:21:07 +0000 (UTC)
Subject: Как заставить работать Net-SSH-Perl и Net-SFTP под Windows
В повседневной админской работе приходится частенько сталкиваться с
задачкой вроде написать/подправить конфиг на юниксовом сервере, а после
перезапустить какой-нибудь сервис.
Конечно, если изменение, которое нужно внести в файл на сервере,
тривиальное, никто не мешает зайти на него по SSH, и воспользоваться
vim/le/mc/emacs и т.д., но в более сложных случаях я всегда предпочитал
пользоваться любимым windows-редактором.
Какие здесь есть альтернативы?
Берем любой редактор, пишем файл, далее закачиваем его по
FTP/SFTP на сервер, заходим на него терминалом по SSH, перезапускаем
чего-там-нам-нужно.
Как правило, первый способ надоедает весьма быстро, поэтому
начитается суматошный поиск редактора с возможностью закачки по FTP
(каких вобщем-то немало). Однако держать на машине FTP-сервер только
для того, чтобы удобно закачивать туда конфиги, я считаю излишним
(ведь все равно на любом unix-сервере по-любому есть SSH/SFTP),
поэтому этот способ тоже себя изжил.
Более универсальный вариант - взять программу вроде WebDrive
webdrive.com и создать себе сетевой диск (причем
WebDrive умеет работать как по FTP, так и по SFTP), после чего можно
пользоваться любым редактором. Но, этот самый WebDrive оказался
весьма тормознутым и тяжеловатым зверьком, отжирая непонятно на что
мегабайт под 70 памяти, и я снова оказался на перепутье.
Хорошо, что скоро нашелся вариант, которым пользуюсь до сих пор -
UltraEdit ultraedit.com, с FTP/SFTP клиентом, после
чего жизнь стала казаться гораздо проще.
Однако, если представить задачу посложнее, например:
запустить скрипт (перловый или какой другой) на рабочей машине
(а у меня на ней Windows),
закачать на сервер файлы - результат работы скрипта,
запустить/перезапустить что-либо на сервере,
то количество ручной работы начинает снова дико утомлять.
В конце-концов, родилась логичная мысль - а почему бы не написать
скриптик на том же самом перле, который по SFTP и файлы закачает, а по
SSH и сервис перезапустит. Казалось бы, чего проще, берем Net-SFTP и
Net-SSH-Perl и вперед... Оказалось, впрочем, что это все просто в мире
UNIX, а вот под Windows в стандартном репозитории ActiveState нет и
намека на такие вкусности (хотя бы потому, что требуется куча
зависимостей вроде Crypt-DSA, Crypt-Blowfish и т.д., которые должны быть
представлены в бинарном виде).
Порядочно погуглив, и, фильтруя советы вроде собрать упрощеный
Net-SSH-Perl только с поддержкой Crypt-DES_EDE3 (т.е. только DES3), я
наткнулся на свет истины: http://www.netadmintools.com/art489.htm.
Также есть более простой путь на CPAN:
http://search.cpan.org/src/SCOTTS/Net-SSH-W32Perl-0.05/README
Оказалось, что добрый человек по имени Scott Scecina уже давно
поддерживает порт Net::SSH::Perl под MSWin32, а по адресу http://www.soulcage.net/ppds
находится его репозиторий. Следуем его совету: