Прежде чем задать вопрос:
Я не могу использовать модуль cpan Net :: SSH, хочу, но не могу, никакое количество попрошайничества не изменит этот факт
Мне нужнобыть в состоянии открыть соединение SSH, держать его открытым, читать его стандартный вывод и записывать в стандартный вывод.До сих пор мой подход состоял в том, чтобы открыть его в трубе, но я не смог продвинуться дальше этого, он сразу же умирает.
Это то, что я имею в виду, я понимаю, что это вызывает развилку,Я написал соответствующий код для этого форка (или, я так думаю).
Ниже приведен скелет того, что я хочу, мне просто нужна система для работы.
#!/usr/bin/perl
use warnings;
$| = 1;
$pid = open (SSH,"| ssh user\@host");
if(defined($pid)){
if(!$pid){
#child
while(<>){
print;
}
}else{
select SSH;
$| = 1;
select STDIN;
#parent
while(<>){
print SSH $_;
while(<SSH>){
print;
}
}
close(SSH);
}
}
Я знаюИсходя из того, как это выглядит, я пытаюсь воссоздать «system ('ssh user @ host')», это не моя цель end , но знание того, как это сделать, приблизило бы меня кконечная цель.
По сути, мне нужен дескриптор файла для открытого ssh-соединения, где я могу читать из него выходные данные и записывать в них входные данные (не обязательно прямо из STDIN моей программы, все, что я хочу, переменные,yada yada)
Это включает в себя ввод пароля.
Я знаю о парах ключей, часть конечной цели заключается в создании пар ключей, но соединение должно происходить независимо от их существования, и если онине существует, это часть моего плана, чтобы заставить их существовать.