2

アカウントやパスワードを必要とせずにサーバーで scp サービスが利用可能かどうかを検出する方法を提案してください。

私はかどうかを伝える方法を理解しようとしています

 Net::SCP->new( "hostname", "username" );

リモート ホストでサービスを利用できないか、認証に失敗したため、機能がリモートに接続できませんでした。

4

4 に答える 4

6

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
于 2009-06-12T08:12:43.997 に答える
1

Net::SCP の代わりに Net::SSH2 または Net::OpenSSH を使用します。

于 2010-08-23T08:28:48.220 に答える
1

Net::SCP は、対話モードを使用していない限り、パスワードを使用しません。RSA または DSA キーを使用します。get() または put() を使用した時点で、これらの関数は、成功または失敗で true または false を返します。

キー認証の代わりにパスワードを使用する必要がある場合は、代わりに Net::SCP::Expect を確認してください。両方のモジュールの perldoc には、従うべき良い例があります。

于 2009-06-12T08:18:42.470 に答える