1)如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时, **比如:**批量执行命令,批量上传文件等操作,paramiko是最佳工具之一。 2)paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 3)由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台 如Linux, Solaris, BSD,MacOS X, Windows等,paramiko都可以支持 4)如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一 5)现在如果需要从windows服务器上下载Linux服务器文件: a. 使用paramiko可以很好的解决以上问题,它仅需要在本地上安装相应的软件(python以及PyCrypto) b. 对远程服务器没有配置要求,对于连接多台服务器,进行复杂的连接操作特别有帮助
import paramiko # 1 创建SSH对象 ssh = paramiko.SSHClient() # 2 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 3 连接服务器 ssh.connect(hostname=‘1.1.1.3‘, port=22, username=‘root‘, password=‘chnsys@2016‘) # 4 执行命令 #stdin标准输入: 自己输入的命令 stdin, stdout, stderr = ssh.exec_command(‘pwd‘) # stdout标准输出: 命令执行结果 # 5 获取命令结果 #stderr标准错误: 命令执行报错的结果 res, err = stdout.read(), stderr.read() result = res if res else err print(result.decode()) #运行结果: /root # 6 关闭连接 ssh.close()
import paramiko #1 连接客户端 transport = paramiko.Transport((‘10.1.0.50‘,22)) transport.connect(username=‘root‘,password=‘chnsys@2016‘) #2 定义与客户端交互 将刚刚定义的transport当参数传递给他 sftp = paramiko.SFTPClient.from_transport(transport) #3 将location.py 上传至服务器 /tmp/test.py sftp.put(r‘C:\bbb\file.txt‘, ‘/tmp/file.txt‘) #4 将remove_path 下载到本地 local_path sftp.get(‘/tmp/file.txt‘,r‘C:\bbb\file.txt‘) #5 关闭连接 transport.close()
原文:https://www.cnblogs.com/xiaoxiamiaichiyu/p/14588100.html