2

PHPでSSH2ストリームを処理するときに、ユーザーのSSHクライアント構成を使用することは何とか可能ですか? ほとんどのシステムでは、これは ~/.ssh/config に保存されます。

私の場合、SSH 構成でいくつかのエイリアスが構成されています。しかし、PHP コードでこれらのエイリアスを使用しようとすると、機能しません。

例 ~/.ssh/config

Host foo
    HostName my.server
    Port 22
    User sander
    IdentityFile ~/.ssh/id_rsa

失敗するが、動作させたい PHP コードの例:

<?php
$text = file_get_contents('ssh2.sftp://foo/bar.txt');
4

4 に答える 4

2

はい、これは完全に可能です。そのファイルのファイル形式を指定します。あなたがする必要があるのは、そのためのパーサーを作成することです (これはすでに作成されている可能性があり、少なくとも似たようなものです)。次に、ホスト名 (ここでは: foo) を使用してその構成にアクセスします。

次に、これらの設定で接続します。

あなたの例を正確に持ちたい場合:

$text = file_get_contents('ssh2.sftp://foo/bar.txt');

これはもっと複雑で、不可能だと思います。ただし、プレフィックスを変更すると、ssh2 ラッパーを「ラップ」する登録済みのストリーム ラッパーとして実装を挿入できるため、使用方法も同様に簡単です。

$text = file_get_contents('my.ssh2.sftp://foo/bar.txt');
于 2012-10-08T20:35:16.293 に答える
1

http://pecl.php.net/package/ssh2でssh2 ラッパーのソース コードを確認すると、エイリアスがまったくサポートされていないようです。

彼らのメーリング リストに投稿すると、エイリアス サポートはおそらく簡単に追加できます。

于 2012-10-08T13:41:03.670 に答える