paramiko模块
2021/5/16 18:55:12
本文主要是介绍paramiko模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
paramiko
一 介绍
# 用于帮助开发者通过代码远程连接服务器,并对服务器进行操作。 # pip3 install paramiko
二 通过用户名密码方式远程执行命令
import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='192.168.16.85', port=22, username='root', password='123456') # 执行命令 stdin, stdout, stderr = ssh.exec_command('df') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close() print(result.decode('utf-8'))
三 通过用户名密码方式上传下载文件
import paramiko transport = paramiko.Transport(('192.168.16.85', 22)) transport.connect(username='root', password='123456') sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py # sftp.put('123.txt', '/data/123.txt') sftp.get('/data/123.txt', '123.txt') transport.close()
四 通过公钥私钥远程执行命令
import paramiko private_key = paramiko.RSAKey.from_private_key_file(r'C:/Users/Administrator/.ssh/id_rsa') # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='192.168.16.85', port=22, username='root', pkey=private_key) # 执行命令 stdin, stdout, stderr = ssh.exec_command('df') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close() print(result)
五 通过公钥私钥远程上传下载文件
import paramiko private_key = paramiko.RSAKey.from_private_key_file(r'C:/Users/Administrator/.ssh/id_rsa') transport = paramiko.Transport(('192.168.16.85', 22)) transport.connect(username='root', pkey=private_key) sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py # sftp.put('/tmp/123.py', '/tmp/123.py') # 将remove_path 下载到本地 local_path # sftp.get('123.py', '123.py') transport.close()
六 通过私钥字符串远程连接服务器
# 也可以是存在于数据库中 key = """-----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----""" import paramiko from io import StringIO private_key = paramiko.RSAKey(file_obj=StringIO(key)) # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='192.168.16.85', port=22, username='root', pkey=private_key) # 执行命令 stdin, stdout, stderr = ssh.exec_command('df') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close() print(result)
七 生成公钥私钥并上传
# 1 生成公钥和私钥s sh-keygen.exe -m pem # 2 在当前用户家目录会生成: .ssh/id_rsa.pub .ssh/id_rsa # 3 把公钥放到服务器 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.16.85 # 4 以后再连接服务器时,不需要在输入密码 ssh root@192.168.16.85
这篇关于paramiko模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程