提供的资源不是有效的SSH2 SFTP资源 [英] supplied resource is not a valid SSH2 SFTP resource

查看:87
本文介绍了提供的资源不是有效的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆