提供的资源不是有效的SSH2 SFTP资源 [英] supplied resource is not a valid SSH2 SFTP resource
本文介绍了提供的资源不是有效的SSH2 SFTP资源的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<?php
$ssh = ssh2_connect('domain.tld');
ssh2_auth_password($ssh, 'username', 'password');
$start = microtime(true);
$sftp = fopen('ssh2.sftp://'.$ssh.'/home/username/1mb', 'w');
fwrite($sftp, str_repeat('a', 1024 * 1024));
$elapsed = microtime(true) - $start;
echo "took $elapsed seconds";
该代码段给了我一个
PHP警告:fopen():提供的资源不是...中的有效SSH2 SFTP资源.
PHP Warning: fopen(): supplied resource is not a valid SSH2 SFTP resource in ...
错误.为什么?
$sftp = fopen('ssh2.sftp://username:password@domain.tld:22/home/user/1mb', 'w');
例如,这可以正常工作,但是如果您正在执行公钥身份验证,则将无法正常工作.
That one works just fine but it wouldn't work if you were doing public key authentication, for example.
推荐答案
正如评论中提到的hakre,您应该使用
As hakre mentioned in comment you should use
$ssh = ssh2_connect('domain.tld');
$resSftp= ssh2_sftp($ssh);
$sftp = fopen('ssh2.sftp://'.$resSftp.'/home/username/1mb', 'w');
这篇关于提供的资源不是有效的SSH2 SFTP资源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文