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()
评论