Perl で SSH
プログラム - 2018/09/23 01:58:39
Perl で SSH
Net::OpenSSH は Windows 環境 (Cygwin を使ったとしても) 動作不可っぽいので Net::SSH::W32Perl を選択。
ネットに出回ってるサンプルや cpan などを見ながらコーディングしても繋がらない。 いや、繋がるけど認証されない。
半日ぐらい試行錯誤した結果行き着いたのが、ユーザー名とパスワードから UTF-8 フラグを落とすという事。 (use utf8;
していないなら encode は要らないと思う)
盲点でした。
cmd メソッドは都度セッション張るため、cd とかでディレクトリを移動しても次の cmd ではホームディレクトリに戻ってしまいます。 cmd に渡すコマンドはセミコロンで区切るか、一連の処理をまとめた shell スクリプトや perl スクリプトを使った方がいいです。
options の外に User を書いてるサンプルがありましたが、現バージョンでは動作しません。 options の中に書いてください。
あまり関係無い話だけど、Net::FTP はフラグ付き UTF-8 でも問題無かった。
Perl で SSH
http://0pm.0am.jp/memo3/index.cgi?entry=20180923_015839