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

评论