Ваше предположение, что Net::SSH
сделает удаленные ресурсы доступными локально, неверно.
S SH создает зашифрованный канал для удаленной системы и переводит вас либо в оболочку, либо запускает удаленную команду (например, perl / сценарий оболочки), или позволяет копировать / извлекать файл.
Вы можете открыть канал S SH в удаленной оболочке и запускать команды, как на локальном компьютере, но если вы хотите проверить, существует ли файл в удаленной системе затем вы должны сообщить об этом через удаленную оболочку или скрипт perl.
Вероятно, вам нужно получить S SH FS , что может сделать удаленные файлы доступными локально.
Я должен отметить, что у пользователей в локальной и удаленной системе могут быть разные id
на системном уровне, и это может быть не то, что вам нужно (манипулировать файлами другого пользователя). Этот подход может работать хорошо, если ваш локальный и удаленный id
совпадает и принадлежит вам.
Я думаю, что наиболее простым способом было бы написать скрипт perl в удаленной системе и передать ему некоторые аргументы. Сценарий в удаленной системе выполнит оставшуюся часть работы.
В такой ситуации вы можете использовать Net::SSH2
, чтобы установить sh соединение с удаленной оболочкой, а затем запустить удаленный perl сценарий с параметрами.
Чтобы получить лучшее представление о том, как это работает, не создавая длинных постов, я отсылаю вас к PerlMonks Net :: SSH2 демо .
Другие более трудный путь будет писать достаточно perl кода для установления sh соединения с удаленной системой по протоколу SSH2 к удаленному perl сценарию с возможностью «переводить» ваши локальные команды
$chan->command($argument)
в удаленные perl кодовые блоки для выполнения конкретной задачи.
Net :: SSH2