Как я могу определить, доступен ли scp от Perl? - PullRequest
0 голосов
/ 15 июня 2009

In Net :: SCP , в какой момент мне нужны ключи DSC или RSA (т.е. когда я использую функции get или put) ?. Я хотел бы знать, что служба scp доступна без передачи файла.

Ответы [ 4 ]

3 голосов
/ 15 июня 2009

За документы в CPAN , вам это нужно, прежде чем вы даже импортируете этот модуль, и я цитирую:

""» В: Как вы предоставляете пароль для соединения с ssh в perl-скрипте с использованием модуля Net :: SSH?

A: Вы не делаете. Используйте ключи RSA или DSA. См. Справочную страницу ssh-keygen (1).

"" "

Другими словами, NET::SCP предназначен для использования с аутентификацией SSH «без пароля» через предварительно сгенерированные и распространенные пары личного / открытого ключей.

1 голос
/ 28 июня 2009

Если вы планируете использовать SSH с использованием аутентификации по паролю, рассмотрите Net :: SSH :: Perl .

1 голос
/ 15 июня 2009

Если все, что вам нужно, это проверить, прослушивает ли удаленная система порт ssh / scp, вы можете попробовать выполнить команду ping:

use Net::Ping;
$p = Net::Ping->new("tcp", 2);
$p->port_number(scalar(getservbyname("ssh", "tcp")));
if ( $p->ping( $hostname ) ) {
    print "ok!";
}

Вы можете использовать Net :: SSH или Net :: SSH :: Expect или Net :: SSH2 или Net :: SSH :: Perl, если у вас есть ключи или пароль, и вы хотите проверить, можете ли вы подключиться без фактической передачи каких-либо файлов .

1 голос
/ 15 июня 2009

Поскольку Net :: SCP является оболочкой для scp, вам не нужно (то есть вы не можете) предоставлять ключи для скрипта. Ожидается, что вы (или кто-то еще) выполните настройку, настроив ssh, прежде чем пытаться его использовать.

NET :: SCP не предназначен для использования «ad hoc». Требуется ssh-настройка и обмен ключами.

РЕДАКТИРОВАТЬ включены комментарии ysth

...