PHP SSH2を使用してリモートディレクトリを確認する

php ssh
PHP SSH2を使用してリモートディレクトリを確認する

PHP-SSH2を使用して、リモートSSHサーバーにディレクトリ「xyz」が存在するかどうかを確認するにはどうすればよいですか?

  6  2


ベストアンサー

sftpプレフィックス ‘ssh2.sftp://’を使用してfile_existsを使用できます。

たとえば、安定した接続では次のことができます。

$sftp = ssh2_sftp($connection);
$fileExists = file_exists('ssh2.sftp://' . $sftp . '/home/marco');

19


phpseclib、純粋なPHP SSH実装の代わりにPHP SSH2を放棄することをお勧めします。

とりわけ、PHP SSH2のAPIはひどいものです。 秘密鍵はロードするファイルシステムに保存する必要がありますが、phpseclibでは必要なのは文字列だけです。 libssh2が必要とするので、ファイルシステムにダンプする必要なく、$ _ POSTからキーを取得できます。 それに加えて、libssh2では公開鍵用の別のファイルが必要です。これは、秘密鍵が公開鍵を「含む」ため、脳死です。

libssh2のssh2_exec()もANSIカラーコードを返し、出力を返さないことがあります(一致しない)。

最後に、phpseclibはhttp://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/#comment_3759 [ただ単純に速い]です。

3


Linuxサーバーを想定しています

$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$cmd = 'if test -d "/YOUR_DIRECTORY"; then echo 1; fi';
$stream = ssh2_exec($connection, $cmd);

1


0


タイトルとURLをコピーしました