perl + Expect + sshfs

Модератор: Модераторы разделов

Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

perl + Expect + sshfs

Сообщение BSDevil »

Никак не могу победить проблему, автоматического ввода пароля при монтировании с помощью sshfs. У меня есть скрипт, который представляет из себя меню, для работы со всевозможными железяками, серверами, базами. В общем одно меню на все доступы. В скрипте, есть возможность автоматом монтировать удаленные UNIX сервера. Раньше, когда я сидел на линуксе, работал такой вариант монтирования:

Код: Выделить всё

system("echo \'$password\'|sshfs $login\@$ip:$mount_dir $mount_point -o password_stdin");

С переходом на MAC OS, этот вариант к сожалению больше не работает. Раскидать по всем серверам ключи (в единичном случае) - в принципе выход, но хотелось бы довести заявленный функционал скрипта, до рабочего состояния для макинтошей.

Такой вариант к сожалению тоже не работает:

Код: Выделить всё

#!/usr/bin/env perl

use strict;
use warnings;
use Expect;

my $cmd = 'sshfs user1@10.1.15.201:/ /Users/alexemergy/sshfs/bast-1';
my $password = '9834r4iiij';

my $exp = Expect->spawn($cmd) or die "Cannot spawn $cmd: $!\n";

my $timeout = 6;
$exp->expect($timeout, [
        "assword:" => sub {
            $exp->send($password . "\n");
            exp_continue;
        }
]);
$exp->soft_close();
Изображение
Спасибо сказали: