アカウントやパスワードを必要とせずにサーバーで scp サービスが利用可能かどうかを検出する方法を提案してください。
私はかどうかを伝える方法を理解しようとしています
Net::SCP->new( "hostname", "username" );
リモート ホストでサービスを利用できないか、認証に失敗したため、機能がリモートに接続できませんでした。
sshd はポート 22 で実行されます。Telnet で応答しているかどうかを確認します。
何もコーディングせずにサーバーをチェックするには、コマンド ラインで次のように入力します。
telnet host.example.com 22
ssh サービスが利用可能な場合、応答は次のようになります。
Trying host.example.com...
Connected to host.example.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1
そうでない場合は、次のように表示されます。
Trying host.example.com...
telnet: Unable to connect to remote host: Connection refused
Net::SCP の代わりに Net::SSH2 または Net::OpenSSH を使用します。
Net::SCP は、対話モードを使用していない限り、パスワードを使用しません。RSA または DSA キーを使用します。get() または put() を使用した時点で、これらの関数は、成功または失敗で true または false を返します。
キー認証の代わりにパスワードを使用する必要がある場合は、代わりに Net::SCP::Expect を確認してください。両方のモジュールの perldoc には、従うべき良い例があります。