亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 PHP 上檢索遠程文件并將其存儲在本地計算機上(使用 OpenSSH/SCP)?

如何在 PHP 上檢索遠程文件并將其存儲在本地計算機上(使用 OpenSSH/SCP)?

PHP
德瑪西亞99 2023-09-22 16:16:56
正如標題所述,我在通過 PHP 從遠程 SSH 服務器檢索文件時遇到問題。我可以通過 Command Shell 檢索該文件,但是當我嘗試通過 PHP 檢索該文件時,它似乎不起作用。例如,我的代碼在 PHP 腳本上如下所示:echo shell_exec(scp $remoteUser@$remoteIP:$remoteFilePath $localFilePath);對于上下文,此 PHP 腳本適用于網頁。在執行上述命令之前,我還有另一個 SCP 命令(將本地文件復制到遠程服務器)和一個 SSH 命令,這些命令都能夠成功執行,沒有任何問題(這些命令也是通過 shell_exec() 執行的) 。
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

我建議使用一個有助于 SFTP 或 SCP 使用的庫 - 例如idct/sftp-client: https: //github.com/ideaconnect/idct-sftp-client

將其包含在您的項目中,然后創建一個實例:

use IDCT\Networking\Ssh\SftpClient;

use IDCT\Networking\Ssh\Credentials;

$client = new SftpClient();

然后創建設置正確的憑據 - 密碼或公鑰:


# password

$credentials = Credentials::withPassword($username, $password);

$client->setCredentials($credentials);


# or key:

$credentials = Credentials::withPublicKey($username, $publicKey, $privateKey, $passphrase = null);

$client->setCredentials($credentials);

然后連接并下載您的文件:


$client->connect($host);


# using sftp

$client->download(ENTER_REMOTE_FILE_NAME);


# or scp

$client->scpDownload(ENTER_REMOTE_FILE_NAME);


$client->close();

它比使用不太安全和系統依賴的 更加優雅shell_exec。您也可以自己使用所有方法:等ssh2_scp_recv。ssh2_connect


查看完整回答
反對 回復 2023-09-22
  • 1 回答
  • 0 關注
  • 100 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號