php中使用sftp教程

2022-10-06 10:48:09 字數 2982 閱讀 1738

php

/**php 中的sftp 使用教程

telnet、ftp、ssh、sftp、ssl

(一) ftp 協議簡介

ftp(file transfer protocol,檔案傳輸協議)是網際網路上常用的協議之一,人們用ftp實現互連網上的檔案傳輸。

如同其他的很多通訊協議,ftp通訊協議也採用客戶機 / 伺服器(client / server )架構。使用者可以通過各種不同的ftp客戶端程式,

借助ftp協議,來連線ftp伺服器,以上傳或者**檔案ftp的命令傳輸和資料傳輸是通過不同的埠進行傳輸的

ftp是tcp/ip的一種具體應用,它工作在osi模型的第七層,tcp模型的第四層上,即應用層,使用tcp傳輸而不是udp,

這樣ftp客戶在和服 務器建立連線前就要經過乙個被廣為熟知的"三次握手"的過程,它帶來的意義在於客戶與伺服器之間的連線是可靠的,

而且是面向連線,為資料的傳輸提供了可靠 的保證。

(二)ssh協議

ssh 的全稱為 secureshell ,可以報所有的傳輸資料驚醒加密,這樣'中間人'就不能獲得我們傳www.cppcns.com輸的資料

同事,傳輸的資料是經過壓縮的,可以加快傳輸的速度.ssh有很多功能,可以替代telnet 也可也為ftppop ,提供乙個安全的通道

ssh協議框架中最主要的部分是三個協議:

* 傳輸層協議(the tra layer protocol)提供伺服器認證,資料機密性,資訊完整性 等的支援;

* 使用者認證協議(the user authentication protocol) 則為伺服器提供客戶端的身份鑑別;

* 連線協議(the connection protocol) 將加密的資訊隧道復用成若干個邏輯通道,提供給更高層的應用協議使用;

各種高層應用協議可以相對地獨立於ssh基本體系之外,並依靠這個基本框架,通過連線協議使用ssh的安全機制。

(三)sftp 協議

使用ssh協議進行ftp傳輸的協議叫sftp(安全檔案傳輸)sftp和ftp都是檔案傳輸協議。區別:sftp是ssh內含的協議(ssh是加密的telnet協議),

只要sshd伺服器啟動了,它就可用,而且sftp安全性較高,它本身不需要ftp伺服器啟動。 sftp = ssh + ftp(安全檔案傳輸協議)。由於ftp是明文傳輸的,

沒有安全性,而sftp基於ssh,傳輸內容是加密過的,較為安全。目前網路不太安全,以前用telnet的都改用ssh2(ssh1已被破解)。sftp這個工具和ftp用

法一樣。但是它的傳輸檔案是通過ssl加密了的,即使被截獲了也無法破解。而且sftp相比ftp功能要多一些,多了一些檔案屬性的設定

*/

// 注意這裡只是為了介紹ftp ,並沒有做驗證 ;

class ftp

// ftp 連線

public function connect()

// 傳輸資料 傳輸層協議,獲得資料 true or false

public function download($remote, $local,$mode = 'auto')

// 傳輸資料 傳輸層協議,上傳資料 true or false

public function upload($remote, $local,$mode = 'auto')

程式設計客棧

// 刪除檔案

public function remove($remote)

} // 使用

$config = array(

'hostname' => 'localhost',

'username' => 'root',

'password' =>fcrylhcuqd '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

// 連線ssh ,連線有兩種方式(1) 使用密碼

// (2) 使用秘鑰

public function connect()else

return $rc ; }

// 傳輸資料 傳輸層協議,獲得資料

public function download($remote, $local)

//傳輸資料 傳輸層協議,寫入ftp伺服器資料

public function upload($remote, $local,$file_mode=0664)

// 刪除檔案

public function remove($remote)/")) else

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);

本文標題: php中使用sftp教程

本文位址:

php中使用mysql介紹 PHP中使用MySQL

mysql資料庫的擴充套件 擴充套件庫基本功能相似,用法基本相同,會增加一些新的特性 mysqli擴充套件庫 只能對mysql資料庫操作 pdo擴充套件 可以操作很多態別的資料庫 wamp下修改mysql資料庫密碼 三者在建立連線上的比較 pdo需要四個引數,除了資料庫管理員名稱 密碼 host 還...

linux 下安裝sftp教程

當ssh 連線linux伺服器的時候不能傳送檔案,這是開啟sftp就可以了,系統有的是預設的帶有sftp服務的但是有時候會存在問題導致不能使用,這時需要重新註冊服務,一下步驟僅供參考。1.關閉防火牆 systemctl stop firewalld.service 2.切換到etc目錄下 cd et...

PHP中使用儲存過程

下面是乙個簡單的存貯過程 create procedure sp mystoreprocedure as select host,user,password from user define oledb connection string provider sqloledb data source ...