您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php中使用sftp教程

2024/4/19 7:22:12发布30次查看
这篇文章主要介绍了php中使用sftp教程,本文讲解了ftp 协议简介、ssh协议、sftp 协议等知识,并给出了ftp和sftp操作类实现代码,需要的朋友可以参考下
config = $config;}// ftp 连接 public function connect(){ return $this->conn = ftp_connect($this->config['host'],$this->config['port'])); }// 传输数据 传输层协议,获得数据 true or falsepublic function download($remote, $local,$mode = 'auto'){return $result = @ftp_get($this->conn, $localpath, $remotepath, $mode); }// 传输数据 传输层协议,上传数据 true or falsepublic function upload($remote, $local,$mode = 'auto'){return $result = @ftp_put($this->conn, $localpath, $remotepath, $mode); }// 删除文件 public function remove($remote){ return $result = @ftp_delete($this->conn_id, $file); }}// 使用 $config = array('hostname' => 'localhost','username' => 'root','password' => 'root','port' => 21) ;$ftp = new ftp();$ftp->connect($config);$ftp->upload('ftp_err.log','ftp_upload.log');$ftp->download('ftp_upload.log','ftp_download.log');/*根据上面的三个协议写出基于ssh 的ftp 类我们知道进行身份认证的方式有两种:公钥;密码 ;(1) 使用密码登陆(2) 免密码登陆也就是使用公钥登陆*/class sftp{// 初始配置为null private $config =null ; // 连接为null private $conn = null;// 是否使用秘钥登陆private $use_pubkey_file= false;// 初始化 public function init($config){ $this->config = $config ; }// 连接ssh ,连接有两种方式(1) 使用密码 // (2) 使用秘钥 public function connect(){$methods['hostkey'] = $use_pubkey_file ? 'ssh-rsa' : [] ;$con = ssh2_connect($this->config['host'], $this->config['port'], $methods); //(1) 使用秘钥的时候if($use_pubkey_file){ // 用户认证协议$rc = ssh2_auth_pubkey_file($conn,$this->config['user'],$this->config['pubkey_file'],$this->config['privkey_file'],$this->config['passphrase'])); //(2) 使用登陆用户名字和登陆密码 }else{$rc = ssh2_auth_password( $conn, $this->conf_['user'],$this->conf_['passwd']);}return $rc ; }// 传输数据 传输层协议,获得数据public function download($remote, $local){return ssh2_scp_recv($this->conn_, $remote, $local);}//传输数据 传输层协议,写入ftp服务器数据 public function upload($remote, $local,$file_mode=0664){return ssh2_scp_send($this->conn_, $local, $remote, $file_mode);}// 删除文件public function remove($remote){$sftp = ssh2_sftp($this->conn_);$rc = false;if (is_dir(ssh2.sftp://{$sftp}/{$remote})) {$rc = false ;// ssh 删除文件夹$rc = ssh2_sftp_rmdir($sftp, $remote);} else {// 删除文件$rc = ssh2_sftp_unlink($sftp, $remote);}return $rc;}}$config = [ host=> 192.168.1.1 , // ftp地址 user=> ***,port=> 22, pubkey_path => /root/.ssh/id_rsa.pub, // 公钥的存储地址 privkey_path => /root/.ssh/id_rsa,// 私钥的存储地址];$handle = new sftpaccess();$handle->init($config);$rc = $handle->connect();$handle->getdata(remote, $local);
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product