数据供应商已请求公共 SSH 密钥以使用其 SFTP 服务器。他们为我们提供了:
- 用户名
- 密码
- 主机名
- 港口
我正在尝试ssh2.sftp//
使用私钥和用户名/密码在 php 中使用流包装器。我的代码如下:
$options = array(
'ssh2' => array(
'privkey_file' => '/path/to/priv_key',
),
);
$context = stream_context_create($options);
fopen('ssh2.sftp://<username>:<password>@<host>:<port>', 'rb', false, $context);
结果:
Warning: fopen(ssh2.sftp://...@<ip>...): failed to open stream: operation failed in ...
我可以使用 linux 的 sftp 命令进行连接,所以我知道连接可以正常工作并且凭据工作正常。
sftp -oPort=<port> -i /path/to/priv_key -v <username>@<host>
结果:
Authenticated with partial success.
password: <password-entered>
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Sending subsystem: sftp
sftp>
有没有人有任何想法?