将文件放在 SFTP 服务器上

发布于 2024-11-10 18:56:05 字数 614 浏览 5 评论 0原文

我想在使用公钥(而不是密码)进行身份验证后将文件放在 STFP 服务器上。 命令行中的手动 SFTP 有效。 首先,我不能使用phpseclib。 我的 PHP.ini stream_get_wrappers() 中的 'allow_url_fopen' = 1

给了我: https,ftps,compress.zlib,compress.bzip2,php,file,glob,data,http,ftp,phar,ssh2.shell,ssh2.exec, ssh2.tunnel、ssh2.scp、ssh2.sftp、zip

一切正常(按顺序:ssh2_connect、ssh2_auth_pubkey_file、ssh2_sftp) 但这段代码不起作用:

$sftp = ssh2_sftp($connection);
$dest = 'test.txt';
--> $sftpStream = fopen('ssh2.sftp://'.$sftp.$dest, 'w'); <---
PHP Warning:  fopen(ssh2.sftp://Resource id #32test.txt): failed to open stream: 

有什么想法吗?

谢谢 S。

I'd like to put a file on a STFP server after a Authentification with a Public key (not password).
Manual SFTP in command line works.
First of all, I can't use phpseclib.
'allow_url_fopen' = 1 in my PHP.ini

stream_get_wrappers() gives me: https,ftps,compress.zlib,compress.bzip2,php,file,glob,data,http,ftp,phar,ssh2.shell,ssh2.exec,ssh2.tunnel,ssh2.scp,ssh2.sftp,zip

everything work (in order: ssh2_connect, ssh2_auth_pubkey_file, ssh2_sftp)
but this code doesn't work:

$sftp = ssh2_sftp($connection);
$dest = 'test.txt';
--> $sftpStream = fopen('ssh2.sftp://'.$sftp.$dest, 'w'); <---
PHP Warning:  fopen(ssh2.sftp://Resource id #32test.txt): failed to open stream: 

Any idea ?

Thank you
S.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

薄凉少年不暖心 2024-11-17 18:56:05

简单错误:您忘记了 $resource$resource 之间的 /$dest。因此,这将起作用:

$sftpStream = fopen('ssh2.sftp://'.$sftp.'/'.$dest, 'w');

..前提是您对文件系统的根目录具有写访问权限。除了在 ssh 连接上执行 cwd 之外,您可能还需要提供文件的完整路径,我还没有找到将文件放入连接后的“默认”目录。

Simple error: you forgot a / between $resource & $dest. So, this will work:

$sftpStream = fopen('ssh2.sftp://'.$sftp.'/'.$dest, 'w');

.. provided you have write access on the root of your filesystem. You may be required to give the full path to the file, aside from executing cwd on an ssh-connection I've yet to find a method to put a file in the 'default' dir after connecting.

怎言笑 2024-11-17 18:56:05

phpseclib 使用 fsockopen ,allow_url_fopen 不应该起作用。 allow_url_fopen 适用于 file() 和 file_get_contents() 之类的东西 - 不适用于 fsockopen()。

phpseclib uses fsockopen which allow_url_fopen shouldn't effect. allow_url_fopen is for things like file() and file_get_contents() - not for fsockopen().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文