`
desert3
  • 浏览: 2159341 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

python sftp&ftp&ssh2

 
阅读更多
ftp使用内置模块from ftplib import FTP
# ftp settings
ftp_server   = "192.168.0.1"
ftp_port     = "21"
ftp_user     = "user"
ftp_password = "pwd"
def ftp_stor_files(file_zip):
    cmd_stor = "STOR %s" %(os.path.split(file_zip)[1])
    print(cmd_stor)
    ftp = FTP(ftp_server, ftp_user, ftp_password)
    ftp.getwelcome()
    ftp.storbinary(cmd_stor, open(file_zip, "rb"), 1024)
    ftp.close()
    #ftp.quit()


sftp使用import paramiko
paramiko SSH2 protocol for python    协议:LGPL V2.1

上述包依赖:
Python Cryptography Toolkit (pycrypto)
pycrypto安装时需要Visual2003的编译环境

pycrypto安装包,已编译版本:http://www.voidspace.org.uk/python/modules.shtml#pycrypto(或者直接把Crypto解码到Python25\Lib\site-packages文件夹)

详细使用说明参考:安装目录site-packages下的paramiko-1.7.7.1\demos
# ftp settings
ftp_server   = "192.168.0.1"
ftp_port     = 22
ftp_user     = "user"
ftp_password = "pwd"
def sftp_stor_files(file_zip, destFile):
    t = paramiko.Transport((ftp_server, ftp_port))
    t.connect(username=ftp_user, password=ftp_password, hostkey=None)
    sftp = paramiko.SFTPClient.from_transport(t)
    
    # dirlist on remote host
    dirlist = sftp.listdir('.')
    print "Dirlist:", dirlist
    
    sftp.put(file_zip, destFile)

    t.close()


通过ssh2执行shell脚本
def ssh2_exec_command(command):
    print "ssh2 execute command: %s" %(command)
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ftp_server, username=ftp_user, password=ftp_password)
    stdin, stdout, stderr = ssh.exec_command(command)
    stdin.close()
    for line in stdout.read().splitlines():
        print line
    for line in stderr.read().splitlines():
        print "command error ---%s" %(line)


通过ssh2执行交互式shell脚本
def ssh2_exec_interactive_command():
    print "ssh2 execute interactive command"
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ftp_server, username=ftp_user, password=ftp_password)
    
    while True:
        cmd = raw_input("Please Input Command to run in server %s : " %(ftp_server))
        if cmd == "":
            break
        channel = ssh.get_transport().open_session()
        print "running '%s'" % cmd
        channel.exec_command(cmd)
        print "exit status: %s" % channel.recv_exit_status()
        print "exit status: %s" % channel.recv(10000)
    
    ssh.close()

分享到:
评论

相关推荐

    基于Python实现FTP文件上传与下载操作(FTP&SFTP协议)

    在Python编程中,我们可以使用内置的`ftplib`库来处理FTP协议的操作,而`paramiko`库则提供了对SFTP协议的支持。接下来我们将深入探讨这两个库的使用方法。 **使用`ftplib`实现FTP协议文件上传与下载** 首先,确保...

    python编的FTP下载器

    例如,使用安全的FTP变体如FTPS(FTP over TLS/SSL)或SFTP(SSH文件传输协议)可以增强数据传输的安全性。此外,正确处理用户输入以防止SQL注入或其他类型的攻击也很重要。 9. **错误处理与调试**:在实现FTP下载...

    基于python实现FTP文件上传与下载操作(ftp&sftp协议)

    ### 基于Python实现FTP文件上传与下载操作(FTP&SFTP协议) #### 一、FTP简介 FTP(File Transfer Protocol)即文件传输协议,是一种用于互联网上的控制文件双向传输的应用层协议。用户可以通过FTP将自己的计算机...

    ftp与sftp的编码入门

    2. **单一连接**:SFTP不需要像FTP那样打开多个端口,所有的操作都在一个安全的SSH连接中完成。 3. **内置安全机制**:SFTP不需要额外的命令行交互来实现安全功能,如FTP中的`QUOTE`命令。 4. **文件权限和操作**:...

    FTP与SFTP文件上传Demo

    2. SFTP连接:使用JSch库或其他SSH库建立SSH连接,创建SFTP Session并打开SFTP通道。 3. 文件上传:FTP中使用`storeFile()`方法将本地文件上传到服务器,SFTP中使用`put()`方法实现相同功能。 4. 错误处理:如何处理...

    python实现ftp服务器+客户端

    在实际应用中,为了确保安全性和稳定性,FTP服务器通常会采用SSL/TLS加密(FTPS)或者使用SFTP(SSH文件传输协议)。此外,还可以考虑添加错误处理和日志记录功能,以便于调试和问题排查。 通过学习这个项目,你...

    Python语言实现FTP服务器的方法共2页.pdf.zi

    为了提高安全性,可以考虑使用FTPS(FTP over TLS/SSL)或SFTP(SSH File Transfer Protocol)。Python的`ftplib`提供了`FTP_TLS`类支持FTPS。 综上所述,利用Python的`ftplib`模块,我们可以轻松地构建一个FTP...

    Sftp文件上传demo

    与FTP(File Transfer Protocol)不同,FTP在明文中传输数据,容易遭受中间人攻击,而SFTP则提供了端到端的安全性。 要实现SFTP文件上传,通常需要使用编程语言中的库或模块。例如,在Java中,我们可以使用JSch库,...

    Python基于sftp及rsa密匙实现远程拷贝文件的方法

    与传统的FTP相比,SFTP在传输过程中对所有数据进行了加密处理,确保了数据的安全性。 #### RSA公钥加密技术 RSA是一种非对称加密算法,它使用一对密钥:公钥和私钥。公钥可以公开给任何人,而私钥则必须保密。发送...

    Python语言实现FTP服务器的方法共2页.pdf.zip

    为提高安全性,可以使用FTPS(FTP over TLS/SSL)或SFTP(SSH文件传输协议)。Python的ssl模块可以用于添加TLS支持。 9. **错误处理**:在编写FTP服务器时,需要处理各种可能的异常情况,如网络中断、无效的用户...

    telnet、ftp、sftp、mysql、钉钉推送.rar

    2. **FTP (File Transfer Protocol)**: FTP用于在互联网上进行文件传输。Python的`ftplib`库提供了FTP客户端功能。通过`FTP()`类创建FTP对象,`login()`方法登录服务器,`cwd()`改变工作目录,`storbinary()`或`...

    Python-whipFTP是一个使用tkinterGUI工具python编写的FTPSFTP客户端

    FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,而SFTP(Secure File Transfer Protocol)是SSH(Secure Shell)协议的一部分,提供安全的文件传输服务。whipFTP结合了这两种协议,让用户...

    FileZilla FTP客户端 支持IPv4和IPv6登陆

    此外,它还支持多种FTP协议变种,如FTPS(FTP over TLS/SSL)和SFTP(SSH File Transfer Protocol),为用户提供安全的数据传输保障。 在FileZilla中,用户可以创建多个站点配置,保存登录信息和传输设置,便于管理...

    sftp资料sftp资料

    2. **SFTP与FTP的区别**:FTP(File Transfer Protocol)是传统的文件传输协议,不提供数据加密,而SFTP是基于SSH的安全协议,数据传输过程是加密的,更安全。 3. **Linux下的SFTP命令**:包括`sftp`客户端的使用,...

    python实现ssh及sftp功能(实例代码)

     下面简单的在python实现这几个功能 下面使用到paramiko模块,这个不是python的内置模块,我直接通过pycharm下载这个模块, 第一步实现一个简单的ssh登录命令 代码如下: import paramiko # 创建SSH对象 ssh = ...

    python对服务器进行FTP操作并使用密匙源代码

    连接成功后,可以使用`client.open_sftp()`创建FTP客户端对象,进行文件的上传、下载等操作。在操作完成后,记得关闭FTP客户端和SSH客户端连接,以释放资源并确保安全性。 通过使用SSH密钥进行认证,可以提高连接的...

    FTP.rar_file transfer_ftp_python

    虽然FTP本身不支持加密,但可以通过使用FTP的SSL/TLS扩展(FTPS,也称为“ Explicit FTP over TLS”)或SFTP(SSH File Transfer Protocol)来提高安全性。Python中的`ftplib`库不直接支持FTPS,但可以通过结合`ssl`...

    文件上传与下载 SSH

    文件上传通常涉及到FTP(File Transfer Protocol)或SFTP(Secure File Transfer Protocol),SFTP是SSH的一部分。SFTP比FTP更安全,因为它完全运行在SSH加密通道内。在Linux中,可以使用`scp`(secure copy)或`...

    python 远程获取文件

    此外,如果你需要处理FTP或SFTP协议,可以使用`ftplib`(FTP)和`paramiko`(SSH/SFTP)库。`ftplib`是Python标准库的一部分,可以用来连接FTP服务器并下载文件。`paramiko`则是一个强大的SSHv2协议库,支持SFTP文件...

Global site tag (gtag.js) - Google Analytics