Python Paramiko实现SSHv2协议轻松管理远程服务器
作者:半个码农
这篇文章主要为大家介绍了Python Paramiko实现SSHv2协议轻松管理远程服务器,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
前言
Python的Paramiko库,它是一个用于实现SSHv2协议的客户端和服务器的库。通过使用Paramiko,我们可以在Python程序中轻松地实现远程服务器的管理、文件传输等功能。特别做智能硬件产品的同学要熟悉它,因为它能为你减少很多麻烦,在我以前的工作中,对智能硬件做各种测试就是通过Paramiko连接设备下发各种命令
一.安装
pip install paramiko
二.基本用法
1.创建一个ssh连接客户端
import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
2.添加服务器的SSH密钥(可选)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
3.connect()创建连接,连接远程服务,各种智能硬件,服务器等
hostname = '192.168.31.230' port = 22 username = 'kali' password = 'kali' ssh.connect(hostname, port, username, password)
4.执行远程命令
stdin, stdout, stderr = ssh.exec_command('ls') print(stdout.read().decode()) # 打印输出结果 print(stderrh.read().decode())# 输出错误信息 # 返回结果 Desktop Documents Downloads Music Pictures Public Templates Videos
5.文件下载
local_file = 'D:/code/ssh/local_file.txt' # 本地文件路径和名称 remote_file = '/home/kali/remote_file.txt' # 远程文件路径和名称 sftp = ssh.open_sftp() # 打开SFTP会话 sftp.get(remote_file, local_file) # 从远程服务器下载文件到本地 sftp.close() # 关闭SFTP会话
6.文件上传
local_file = 'D:/code/ssh/local_file2.txt' # 本地文件路径和名称 remote_file = '/home/kali/remote_file2.txt' # 远程文件路径和名称 sftp = ssh.open_sftp() # 打开SFTP会话 sftp.put(local_file, remote_file) # 上传本地文件到远程服务器 sftp.close() # 关闭SFTP会话
7.关闭连接
ssh.close() #关闭连接
三.完整代码如下
import paramiko ssh = paramiko.SSHClient() # 创建客服端 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 添加秘钥 hostname = '192.168.31.230' port = 22 username = 'kali' password = 'kali' ssh.connect(hostname, port, username, password) # 创建连接 stdin, stdout, stderr = ssh.exec_command('ls') # 执行ls print(stdout.read().decode()) # 下载 local_file = 'D:/code/ssh/local_file.txt' # 本地文件路径和名称 remote_file = '/home/kali/remote_file.txt' # 远程文件路径和名称 sftp = ssh.open_sftp() # 打开SFTP会话 sftp.get(remote_file, local_file) # 从远程服务器下载文件到本地 # 上传 local_file2 = 'D:/code/ssh/local_file2.txt' # 本地文件路径和名称 remote_file2 = '/home/kali/remote_file2.txt' # 远程文件路径和名称 sftp = ssh.open_sftp() # 打开SFTP会话 sftp.put(local_file2, remote_file2) # 上传本地文件到远程服务器 sftp.close() # 关闭SFTP会话 ssh.close() # 关闭连接
以上就是Python Paramiko实现SSHv2协议轻松管理远程服务器的详细内容,更多关于Python Paramiko SSHv2协议的资料请关注脚本之家其它相关文章!