亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php中使用sftp教程

2024-05-04 23:33:36
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php中使用sftp教程,本文講解了ftp 協議簡介、ssh協議、sftp 協議等知識,并給出了FTP和SFTP操作類實現代碼,需要的朋友可以參考下

  1. <?php  
  2.  
  3.  
  4. /** 
  5. php 中的sftp 使用教程  
  6. Telnet、FTP、SSH、SFTP、SSL  
  7. (一) ftp 協議簡介  
  8.  
  9. FTP(File Transfer Protocol,文件傳輸協議)是互聯網上常用的協議之一,人們用FTP實現互連網上的文件傳輸。 
  10. 如同其他的很多通訊協議,FTP通訊協議也采用客戶機 / 服務器(Client / Server )架構。用戶可以通過各種不同的FTP客戶端程序, 
  11. 借助FTP協議,來連接FTP服務器,以上傳或者下載文件FTP的命令傳輸和數據傳輸是通過不同的端口進行傳輸的 
  12. FTP是TCP/IP的一種具體應用,它工作在OSI模型的第七層,TCP模型的第四層上,即應用層,使用TCP傳輸而不是UDP, 
  13. 這樣FTP客戶在和服 務器建立連接前就要經過一個被廣為熟知的"三次握手"的過程,它帶來的意義在于客戶與服務器之間的連接是可靠的, 
  14. 而且是面向連接,為數據的傳輸提供了可靠 的保證。 
  15.  
  16. (二)ssh協議  
  17.  
  18. ssh 的全稱為 SecureShell ,可以報所有的傳輸數據驚醒加密,這樣'中間人'就不能獲得我們傳輸的數據 
  19. 同事,傳輸的數據是經過壓縮的,可以加快傳輸的速度.ssh有很多功能,可以替代telnet 也可也為ftppop ,提供一個安全的通道  
  20.  
  21. SSH協議框架中最主要的部分是三個協議: 
  22.  
  23. * 傳輸層協議(The Transport Layer Protocol)提供服務器認證,數據機密性,信息完整性 等的支持; 
  24. * 用戶認證協議(The User Authentication Protocol) 則為服務器提供客戶端的身份鑒別; 
  25. * 連接協議(The Connection Protocol) 將加密的信息隧道復用成若干個邏輯通道,提供給更高層的應用協議使用;  
  26. 各種高層應用協議可以相對地獨立于SSH基本體系之外,并依靠這個基本框架,通過連接協議使用SSH的安全機制。 
  27.  
  28. (三)sftp 協議  
  29. 使用SSH協議進行FTP傳輸的協議叫SFTP(安全文件傳輸)Sftp和Ftp都是文件傳輸協議。區別:sftp是ssh內含的協議(ssh是加密的telnet協議), 
  30. 只要sshd服務器啟動了,它就可用,而且sftp安全性較高,它本身不需要ftp服務器啟動。 sftp = ssh + ftp(安全文件傳輸協議)。由于ftp是明文傳輸的, 
  31. 沒有安全性,而sftp基于ssh,傳輸內容是加密過的,較為安全。目前網絡不太安全,以前用telnet的都改用ssh2(SSH1已被破解)。sftp這個工具和ftp用 
  32. 法一樣。但是它的傳輸文件是通過ssl加密了的,即使被截獲了也無法破解。而且sftp相比ftp功能要多一些,多了一些文件屬性的設置 
  33.  
  34.  
  35. */ 
  36.  
  37.  
  38.  
  39.  
  40. // 注意這里只是為了介紹ftp ,并沒有做驗證 ;  
  41. class ftp{ 
  42.  
  43. // 初始配置為NULL 
  44. private $config =NULL ; 
  45. // 連接為NULL  
  46. private $conn = NULL; 
  47.  
  48. public function init($config){ 
  49. $this->config = $config;  
  50.  
  51. // ftp 連接  
  52. public function connect(){ 
  53. return $this->conn = ftp_connect($this->config['host'],$this->config['port']));  
  54.  
  55.  
  56. // 傳輸數據 傳輸層協議,獲得數據 true or false  
  57. public function download($remote$local,$mode = 'auto'){ 
  58. return $result = @ftp_get($this->conn, $localpath$remotepath$mode); 
  59.  
  60. // 傳輸數據 傳輸層協議,上傳數據 true or false  
  61. public function upload($remote$local,$mode = 'auto'){ 
  62. return $result = @ftp_put($this->conn, $localpath$remotepath$mode); 
  63.  
  64.  
  65. // 刪除文件  
  66. public function remove($remote){ 
  67. return $result = @ftp_delete($this->conn_id, $file); 
  68.  
  69.  
  70. }  
  71.  
  72.  
  73.  
  74. // 使用  
  75. $config = array
  76. 'hostname' => 'localhost'
  77. 'username' => 'root'
  78. 'password' => 'root'
  79. 'port' => 21 
  80.  
  81. ) ; 
  82.  
  83. $ftp = new Ftp(); 
  84. $ftp->connect($config); 
  85. $ftp->upload('ftp_err.log','ftp_upload.log'); 
  86. $ftp->download('ftp_upload.log','ftp_download.log'); 
  87.  
  88.  
  89.  
  90. /*根據上面的三個協議寫出基于ssh 的ftp 類 
  91. 我們知道進行身份認證的方式有兩種:公鑰;密碼 ; 
  92. (1) 使用密碼登陸 
  93. (2) 免密碼登陸也就是使用公鑰登陸  
  94.  
  95. */ 
  96.  
  97. class sftp{ 
  98.  
  99.  
  100. // 初始配置為NULL 
  101. private $config =NULL ; 
  102. // 連接為NULL  
  103. private $conn = NULL; 
  104.  
  105.  
  106. // 是否使用秘鑰登陸  
  107. private $use_pubkey_file= false; 
  108.  
  109. // 初始化 
  110. public function init($config){ 
  111. $this->config = $config ;  
  112.  
  113.  
  114. // 連接ssh ,連接有兩種方式(1) 使用密碼 
  115. // (2) 使用秘鑰  
  116. public function connect(){ 
  117.  
  118. $methods['hostkey'] = $use_pubkey_file ? 'ssh-rsa' : [] ;  
  119. $con = ssh2_connect($this->config['host'], $this->config['port'], $methods); 
  120. //(1) 使用秘鑰的時候  
  121. if($use_pubkey_file){ 
  122. // 用戶認證協議 
  123. $rc = ssh2_auth_pubkey_file( 
  124. $conn
  125. $this->config['user'], 
  126. $this->config['pubkey_file'], 
  127. $this->config['privkey_file'], 
  128. $this->config['passphrase'])  
  129. ); 
  130. //(2) 使用登陸用戶名字和登陸密碼 
  131. }else
  132. $rc = ssh2_auth_password( $conn$this->conf_['user'],$this->conf_['passwd']); 
  133.  
  134.  
  135. return $rc ;  
  136.  
  137.  
  138. // 傳輸數據 傳輸層協議,獲得數據 
  139. public function download($remote$local){ 
  140.  
  141. return ssh2_scp_recv($this->conn_, $remote$local); 
  142.  
  143. //傳輸數據 傳輸層協議,寫入ftp服務器數據 
  144. public function upload($remote$local,$file_mode=0664){ 
  145. return ssh2_scp_send($this->conn_, $local$remote$file_mode); 
  146.  
  147.  
  148. // 刪除文件  
  149. public function remove($remote){ 
  150. $sftp = ssh2_sftp($this->conn_); 
  151. $rc = false; 
  152.  
  153. if (is_dir("ssh2.sftp://{$sftp}/{$remote}")) { 
  154. $rc = false ; 
  155.  
  156. // ssh 刪除文件夾 
  157. $rc = ssh2_sftp_rmdir($sftp$remote); 
  158. else { 
  159. // 刪除文件 
  160. $rc = ssh2_sftp_unlink($sftp$remote); 
  161. return $rc
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169. $config = [ 
  170. "host" => "192.168.1.1 "// ftp地址 
  171. "user" => "***",  
  172. "port" => "22"
  173. "pubkey_path" => "/root/.ssh/id_rsa.pub"// 公鑰的存儲地址 
  174. "privkey_path" => "/root/.ssh/id_rsa"// 私鑰的存儲地址 
  175. ]; 
  176.  
  177. $handle = new SftpAccess(); 
  178. $handle->init($config); 
  179. $rc = $handle->connect(); 
  180. $handle->getData(remote, $local); 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产男女猛烈无遮挡91| 欧美日韩在线免费观看| 97欧美精品一区二区三区| 日韩中文字幕在线视频播放| 久久免费视频网| 日韩欧美精品中文字幕| 亚洲色图17p| 91综合免费在线| 久久亚洲电影天堂| 亚洲sss综合天堂久久| 97国产成人精品视频| 日韩在线播放av| 琪琪第一精品导航| 久久综合电影一区| 欧美成人h版在线观看| 少妇高潮 亚洲精品| 成人欧美在线视频| 久久精品视频免费播放| 最近2019年中文视频免费在线观看| 色视频www在线播放国产成人| 精品国产依人香蕉在线精品| 欧美成人一区在线| 欧美肥臀大乳一区二区免费视频| 欧美日韩美女在线| 亚洲免费视频在线观看| 亚洲综合小说区| 欧美日韩国产一区二区| 亚洲国产成人在线视频| 久久人人爽人人爽人人片亚洲| 成人网欧美在线视频| 日韩成人av一区| 日韩一区二区三区xxxx| 中文字幕日韩欧美| 久久精品影视伊人网| 欧美最猛性xxxxx免费| 91香蕉嫩草神马影院在线观看| 久久精品色欧美aⅴ一区二区| 亚洲嫩模很污视频| 精品女同一区二区三区在线播放| 欧美成人免费在线观看| 国产成人高清激情视频在线观看| 欧美日韩亚洲一区二| 亚洲xxxx做受欧美| 欧美激情亚洲视频| 欧美激情免费观看| 亚洲色图第三页| 日韩美女免费视频| 国产精品成人观看视频国产奇米| 国内精品小视频| 亚洲高清色综合| 一区二区三区视频观看| 欧美性高潮床叫视频| 国产精品video| 久久久国产影院| 欧美激情精品久久久久久大尺度| 国产精品电影久久久久电影网| 精品久久久久久久中文字幕| 亚洲精品在线看| 亚洲精品国产精品久久清纯直播| 亚洲国产精品99久久| 色先锋资源久久综合5566| 精品性高朝久久久久久久| 国产成人啪精品视频免费网| 亚洲欧洲一区二区三区在线观看| 国产精品老女人精品视频| 亚洲黄色av网站| 亚洲乱码一区二区| 永久免费看mv网站入口亚洲| 国产精品日韩欧美| 国产精品午夜国产小视频| 久久中文精品视频| 奇米影视亚洲狠狠色| 精品久久久香蕉免费精品视频| 成人免费在线视频网站| 亚洲国产古装精品网站| 亚洲第一二三四五区| 欧美高清自拍一区| 97在线看免费观看视频在线观看| 久久久久一本一区二区青青蜜月| 国产婷婷色综合av蜜臀av| 在线精品91av| 亚洲天堂免费视频| 国产精品永久免费在线| 亚洲成人1234| 国产一区二区三区四区福利| 欧美精品18videos性欧美| 精品国产拍在线观看| 日韩在线精品一区| 日韩在线免费高清视频| 成人信息集中地欧美| 色综合久久精品亚洲国产| 亚洲成色777777在线观看影院| 美女性感视频久久久| 国产一区在线播放| 麻豆国产va免费精品高清在线| 精品调教chinesegay| 亲子乱一区二区三区电影| xvideos国产精品| 日韩精品在线观看一区二区| 亚洲国产成人久久综合| 国色天香2019中文字幕在线观看| 国产精品毛片a∨一区二区三区|国| 一本色道久久综合狠狠躁篇的优点| 国产97色在线| 日本午夜精品理论片a级appf发布| 亚洲美腿欧美激情另类| 亚洲女人天堂成人av在线| 91精品久久久久久久久久久久久| 尤物九九久久国产精品的分类| 国产精品电影在线观看| 91av免费观看91av精品在线| 久久久久久久久电影| 九九热这里只有精品6| 91精品国产91久久久久久吃药| 色青青草原桃花久久综合| 26uuu久久噜噜噜噜| 日韩欧美亚洲成人| 国产精品激情av在线播放| 精品国内亚洲在观看18黄| 91国在线精品国内播放| 95av在线视频| 欧美高清激情视频| 国产精品露脸av在线| 高清视频欧美一级| 亚洲精品在线观看www| 亚洲欧洲偷拍精品| 欧美成人免费全部| 97在线观看免费| 国产日韩欧美一二三区| 亚洲一区亚洲二区亚洲三区| 精品国产一区二区三区久久| 亚洲最大福利网| 日韩精品高清视频| 久久91亚洲精品中文字幕| 国产精品久久9| 91精品国产高清久久久久久| 色噜噜狠狠狠综合曰曰曰88av| 久久国产视频网站| 91国产中文字幕| 日韩av免费在线看| 国产精品美女久久久免费| 精品久久久999| 欧美国产日韩一区二区三区| 亚洲码在线观看| 国产日韩精品一区二区| 日韩av在线导航| 97超级碰在线看视频免费在线看| 欧美乱大交xxxxx另类电影| 国产成人亚洲综合91| 国产精品一区二区久久国产| 亚洲一区二区黄| 91精品国产色综合| 亚洲一级一级97网| 91精品国产高清久久久久久| 亚洲第一中文字幕在线观看| 欧美色道久久88综合亚洲精品| 欧美最猛性xxxxx免费| 最近日韩中文字幕中文| 不卡中文字幕av| 国产日韩在线亚洲字幕中文| 2019中文字幕免费视频| 亚洲一区中文字幕在线观看| 成人情趣片在线观看免费| 国产91精品不卡视频|