Table of Contents
php中使用sftp教程,php使用sftp教程
Home php教程 php手册 php中使用sftp教程,php使用sftp教程

php中使用sftp教程,php使用sftp教程

Jun 13, 2016 am 09:08 AM
php sftp

php中使用sftp教程,php使用sftp教程

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

<&#63;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  ,可以报所有的传输数据惊醒加密,这样'中间人'就不能获得我们传输的数据

同事,传输的数据是经过压缩的,可以加快传输的速度.ssh有很多功能,可以替代telnet 也可也为ftppop ,提供一个安全的通道

 

  SSH协议框架中最主要的部分是三个协议:

  

* 传输层协议(The Transport 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{

     

    // 初始配置为NULL

    private $config =NULL ;

    // 连接为NULL

    private $conn = NULL;

     

    public function init($config){

     $this->config = $config;   

    }

     

    // ftp 连接

    public function connect(){

        return $this->conn = ftp_connect($this->config['host'],$this->config['port']));

    }

     

     

    // 传输数据 传输层协议,获得数据 true or false

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

      return $result = @ftp_get($this->conn, $localpath, $remotepath, $mode);

  }

   

  // 传输数据 传输层协议,上传数据 true or false

  public 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 &#63; '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);

         

 

        

Copy after login

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1670
14
PHP Tutorial
1274
29
C# Tutorial
1256
24
PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP vs. Other Languages: A Comparison PHP vs. Other Languages: A Comparison Apr 13, 2025 am 12:19 AM

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

See all articles