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 ...