The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Как заставить работать Net-SSH-Perl и Net-SFTP под Windows (ssh windows perl)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: ssh, windows, perl,  (найти похожие документы)
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 находится его репозиторий. Следуем его совету: > ppm rep add soulcage http://www.soulcage.net/ppds # Для Perl 5.6.x > ppm rep add soulcage http://www.soulcage.net/ppds/PPDS.58/ # Для Perl 5.8.x Repositories: [1] ActiveState PPM2 Repository [2] ActiveState Package Repository [3] soulcage > ppm install Net-SFTP После чего становится возможным использовать скрипты вроде: use Net::SSH::W32Perl; use Net::SFTP; # Кладем файлик по SFTP my $sftp = Net::SFTP->new( $host, user => $user, password => $pass, ssh_args => [ protocol => 2, debug => 1 ] ); $sftp->put($file, $file); # И выполняем команду по SSH my $ssh = Net::SSH::W32Perl->new ( $host, protocol => 2, debug => 1, ); $ssh->login($user, $pass); my ($stdout, $stderr, $exit) = $ssh->cmd($cmd); Итак, лень в очередной раз слегка продвинула хотя бы мой личный прогресс.

  • << Предыдущая ИНДЕКС Правка src / Печать Следующая >>

    Обсуждение [ RSS ]
     
  • 1.1, ТинПу, 02:11, 03/06/2006 [ответить] [смотреть все]
  • +/
    JFYI: если пользуешь FAR - к некму полно SSH/SFTP/FTP plugin'ов. + colorer = ЩастьЕ :)
     
     
  • 2.3, Porco, 11:05, 07/06/2006 [^] [ответить] [смотреть все]
  • +/
    Но это опять таки - F4-F5-F4-F5, I like to move it move it :)
     
  • 1.2, Nichls, 20:21, 03/06/2006 [ответить] [смотреть все]
  • +/
    Свет истины погас :-(
    http://www.netadmintools.com/art489.htm

    Ackkk... Pffft... Error 404 Not Found
    What you want is probably below:

    А жаль ...

     
     
  • 2.4, Porco, 11:07, 07/06/2006 [^] [ответить] [смотреть все]
  • +/
    >Свет истины погас :-(
    Но отблик перешел на opennet.ru и теперь будет жить здесь вечно :)
    На самом деле, там был только совет про  добавление репозитория.

     
  • 1.5, zaf, 22:59, 16/11/2006 [ответить] [смотреть все]
  • +/
    thank you sooooo much!
     
  • 1.6, Dyr, 17:32, 09/04/2007 [ответить] [смотреть все]  
  • +/
    У меня та же проблема, что описана здесь: http://www.perlmonks.org/?node_id=590452

    Конструкция  $ssh->login($user, $pass) не работает, поскольку не подставляет пароль(по крайней мере, в сборке для Фри). Стоит включить интерактивный режим, и ввести пароль вручную, всё замечательно.
    У других работает нормально?

     
  • 1.7, KoVA, 15:57, 24/05/2007 [ответить] [смотреть все]  
  • +/
    А можно воспользоваться установкой модуля Net:SSH через ppd
    Качаем:
    http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/Net-SSH.z
    Разархивируем и
    >ppm install Net-SSH.ppd
    И никаких проблем.


     
  • 1.8, nub66666, 10:11, 11/11/2012 [ответить] [смотреть все]  
  • +/
    как его под линукс то заставить работать) Он на линукс то не ставится
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor