Autor Zpráva
Chuchycek
Profil
Ahoj,

potřebuji vytvořit ssh2 připojení na ftpko, ze kterého budu následně stahovat data, ale mám problém s vytvořením $path = "ssh2.sftp://".$sftp."/"; , protože mi to pokaždé vrátí cestu ve tvaru "ssh2.sftp://Resource id #15/", může mi někdo poradit, co mám špatně, protože z ssh2_auth_pubkey_file dostávám TRUE, takže certifikáty to nebude...

        $host = "128.0.0.1";
        $user = "user";
        $pass = "heslo";
        $fileDir = $this->context->parameters['wwwDir'] . "/files/";

        $connection = ssh2_connect($host, 22, array('hostkey'=>'ssh-rsa'));

        ssh2_auth_pubkey_file($connection, $user, $fileDir . 'cer1.pub', $fileDir . 'cer2', $pass);

        $sftp = ssh2_sftp($connection);
        $path = "ssh2.sftp://".$sftp."/";
        
        $handle = opendir($path);
Jozin
Profil
Zdravím, dle PHP vrací ssh2_sftp resource, což jak vidím je pravda, zkus místo "ssh2.sftp://".$sftp."/"; dát "ssh2.sftp://$sftp/"; Tak to mají v manuálu PHP.
Chuchycek
Profil
Jozin:
Tohle bohužel problém nevyřeší.
DarkMeni
Profil
Typ návratové hodnoty funkce ssh2_sftp() je resource, proto se ti v řetězci převede na "Resource id #15"

Ale v manualu u ssh2_sftp() je ještě napsáno, že ta návratová hodnota jde použít i na fopen pro protokol ssh2.sftp - myslim že by to mělo mít stejný efekt (že se v řetězci převede na "Resource id #15"), ale třeba s tím ten fopen nějak umí pracovat - můžeš to zkusit

A nebo si můžeš tu adresu napsat ručně - prej vypadá nějak takto: ssh2.sftp://user:pass@example.com:22/path/to/filename

takže u tebe by mohla být: ssh2.sftp://$user:$pass@$host:22/ (ssh2.sftp://user:heslo@128.0.0.1:22/)
Chuchycek
Profil
Ani tohle bohužel nepomohlo " failed to open dir: operation failed"

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: