Python之ssh、Scp、SFTP操作

51changxue
51changxue
51changxue
54
文章
3
评论
2018年4月30日11:25:58 评论 578 views

python模块之paramiko

paramiko模块,基于SSH用于连接远程服务器并执行相关操作。

SSHClient 用于连接远程服务器并执行基本命令

SFTPClient 用于连接远程服务器并执行上传下载

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 跳过了远程连接中选择‘是’的环节,
ssh.connect('192.168.0.102', 22, 'root', 'root')
transport = paramiko.Transport(('192.168.0.102', 22))
transport.connect(username='root', password='root')
stdin, stdout, stderr = ssh.exec_command('df')#ssh 协议栈命令

for line in stdout:#逐行打印回显
    print(line)

sftp = paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py,都是绝对路径,不是文件夹
sftp.put('put.txt', 'test/yes.txt')
# 将remove_path 下载到本地 local_path,都是绝对路径,不是文件夹
sftp.get('test/hello.txt', 'hi.txt')

transport.close()

运行结果:

"D:\Program Files\Python\python.exe" E:/Python-example/test1/滚动显示.py
文件系统          1K-块     已用     可用 已用% 挂载点

udev            1937888        0  1937888    0% /dev

tmpfs            392608     6348   386260    2% /run

/dev/sda5      30290804 16774928 11954132   59% /

tmpfs           1963032      216  1962816    1% /dev/shm

tmpfs              5120        4     5116    1% /run/lock

tmpfs           1963032        0  1963032    0% /sys/fs/cgroup

cgmfs               100        0      100    0% /run/cgmanager/fs

tmpfs            392608       80   392528    1% /run/user/1000

test

Process finished with exit code 0

测试1:

import paramiko
import tkinter as tk
import tkinter.messagebox
window = tk.Tk()
window.title('my window')
window.geometry('600x600')
def pyssh():

  ssh = paramiko.SSHClient()
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 跳过了远程连接中选择‘是’的环节,
  ssh.connect('4.89.126.81', 22, 'root', 'root')

  stdin, stdout, stderr = ssh.exec_command('df')#ssh 协议栈命令

  i=0
  for line in stdout:#逐行打印回显
    print(line)
    #tk.messagebox.showinfo(title='Hi', message=line)
    i = i + 1
    t.insert(float(i), line+'\n')#输出结果回显到TEXT文本框内
  ssh.close()

  transport = paramiko.Transport(('4.89.126.81', 22))
  transport.connect(username='root', password='root')
  sftp = paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py,都是绝对路径,不是文件夹
  sftp.put('yes.txt', 'test/yes.txt')
# 将remove_path 下载到本地 local_path,都是绝对路径,不是文件夹
  sftp.get('scu/ZEBOS.CFG', 'ZEBOS.CFG')

  transport.close()
t = tk.Text(window, width=100, height=30)
t.pack()
tk.Button(window, text='ssh输入', command=pyssh).pack()
window.mainloop()

 

继续阅读
51changxue
  • 本文由 发表于 2018年4月30日11:25:58
  • 转载请务必保留本文链接:https://51changxue.com/490.html
pycharm永久破解激活教程 Python

pycharm永久破解激活教程

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、...
PYTHON添加线程 Python

PYTHON添加线程

线程调用: import threading #导入模块 #def main(): # print(threading.active_count()) #获取已激活的线程数 # print(threa...
Python多线程(threading)与多进程(multiprocessing ) Python

Python多线程(threading)与多进程(multiprocessing )

对于操作系统来说,一个任务就是一个进程。例如打开浏览器,打开word,打开记事本等等,都是独立的任务,它们各自为一个或者多个进程。这里要注意的是,同一种任务打开多个,分别属于不同进程,例如chrome...
Tkinter控件快速引用总结 Python

Tkinter控件快速引用总结

1.创建窗口主题 2.Lable标签 3.Button按钮 4.Entry单行文本框 5.Text多行文本框 6.ListBox列表 7.Radiobutton单选框 8.Checkbutton复选框...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: