是否可以使用cURL通过SSH获取文件?

时间:2012-01-16 19:50:02

标签: php curl ssh

我已经研究了用于PHP的SSH2模块,但它需要在非常臃肿的服务器上重新编译PHP。这比我们现在想要承担的风险要大得多。

我可以使用cURL通过SSH获取一些文件吗?我做了一些谷歌搜索,发现了一些消息来源,但没有100%明确这是否可行。

2 个答案:

答案 0 :(得分:2)

我不确定cURL,但如果您不想重新编译但服务器已经安装了ssh客户端,则可以对scp进行系统调用。当然,如果您在本地和远程主机之间安装了SSH密钥,它将最有效。

shell_exec("/usr/bin/scp -i private_key_identity user@host:/path/to/remote/file /local/path");

答案 1 :(得分:1)

不幸的是,CURL无法运作。正如@Michael建议的那样,您可以使用scp,或者如果您需要定期复制文件,我建议rsync,因为它只会传输文件内容之间的差异。

exec('/usr/bin/rsync -az user@remotehost:/path/to/directory/* /path/to/local/directory/');

标记-a将使用存档模式,有关详细信息,请参阅documentation-z标志将压缩传输。

rsync也会通过SSH进行转移,因此请确保正确设置了私钥/公钥。