データ サプライヤは、SFTP サーバーを使用するための公開 SSH キーを要求しました。彼らは私たちに次のものを提供してくれました:
- ユーザー名
- パスワード
- ホスト名
- ポート
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>
誰にもアイデアはありますか?