我最近试图实现phpseclib库登录到SFTP服务器,列出目录中的所有文件并进行下载。 下载它们后,它们移动到服务器上的不同目录中。
我没有多少运气。所以直接从下面的代码的网站 ,倒是记录。
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
require('Net\SSH2.php');
require('Crypt\RSA.php');
define('NET_SSH2_LOGGING', 2);
$ssh = new Net_SSH2('host_name', 'port');
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('path_to_rsa_file'));
if (!$ssh->login('username', $key)) {
exit('Login Failed');
}
$ssh->exec("pwd");
这将导致以下错误:
Unable to request pseudo-terminal
诚然,这是一个老的版本,我不知道到底是哪一个,所以我想,也许我应该更新。 通过作曲家在最新版本的拉动,并运行相同的代码上面后,我没有得到任何错误,但我得到这个在日志中:
<- NET_SSH2_MSG_USERAUTH_SUCCESS (since last: 0.1395, network: 0.1394s)
-> NET_SSH2_MSG_CHANNEL_OPEN (since last: 0.0006, network: 0.0005s)
00000000 00:00:00:07:73:65:73:73:69:6f:6e:00:00:00:00:7f ....session.....
00000010 ff:ff:ff:00:00:40:00 .....@.
<- NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION (since last: 0.1232, network: 0.1231s)
00000000 00:00:00:00:00:00:00:00:ff:ff:ff:ff:00:00:80:00 ................
-> NET_SSH2_MSG_CHANNEL_REQUEST (since last: 0.0008, network: 0.0006s)
00000000 00:00:00:00:00:00:00:04:65:78:65:63:01:00:00:00 ........exec....
00000010 03:70:77:64 .pwd
<- NET_SSH2_MSG_CHANNEL_FAILURE (since last: 0.123, network: 0.1228s)
00000000 00:00:00:00 ....
有人有想法么? 我也试着使用SFTP类,但它未能与其他问题“的通知:连接过早关闭”。
谢谢你的帮助!