博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的paramiko模块
阅读量:5173 次
发布时间:2019-06-13

本文共 3588 字,大约阅读时间需要 11 分钟。

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

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

import paramiko# 创建ssh对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接服务器ssh.connect(hostname='192.168.254.130', port=22, username='root',            password='123456')# 执行命令stdin, stdout, stderr = ssh.exec_command('service iptables stop')# 获取命令执行结果result = stdout.read()print(result.decode())# 关闭连接ssh.close()
基于用户名和密码连接
 
import paramikotransport = paramiko.Transport(('192.168.254.129', 22))transport.connect(username='root', password='123456')ssh = paramiko.SSHClient()ssh._transport = transportstdin, stdout, stderr = ssh.exec_command('df;ls')res, err = stdout.read(), stderr.read()reslt = res if res else errprint(reslt.decode())ssh.close()
基于ssh
import paramikotrans = paramiko.Transport(('192.168.33.128', 22))trans.connect(username='root', password='123456')sftp = paramiko.SFTPClient.from_transport(trans)sftp.put('test', '/tmp/test')     #第一个参数是上传的文件及路径,第二个参数是服务器的路径及名称sftp.get('/root/test/ftptest', 'p')      #第一个是下载的路径及名称,第二个参数是本地的路径及名称trans.close()
文件的上传和下载
import paramiko private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa') # 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接服务器ssh.connect(hostname='c1.salt.com', port=22, username='wupeiqi', key=private_key) # 执行命令stdin, stdout, stderr = ssh.exec_command('df')# 获取命令结果result = stdout.read() # 关闭连接ssh.close()
基于公钥密钥连接
import paramikofrom io import StringIOkey_str = """-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEAq7gLsqYArAFco02/55IgNg0r7NXOtEM3qXpb/dabJ5Uyky/8NEHhFiQ7deHIRIuTW5Zb0kD6h6EBbVlUMBmwJrC2oSzySLU1w+ZNfH0PE6W6fansH80whhuc/YgP+fjiO+VR/gFcqib8Rll5UfYzf5H8uuOnDeIXGCVgyHQSmt8if1+e7hn1MVO1Lrm9Fco8ABI7dyv8/ZEwoSfh2C9rGYgA58LT1FkBRkOePbHD43xNfAYCtfLvz6LErMnwdOW4sNMEWWAWv1fsTB35PAm5CazfKzmam9n5IQXhmUNcNvmaZtvPc4f4g59mdsaWNtNaY96UjOfx83Om86gmdkKcnwIDAQABAoIBAQCnDBGFJuv8aA7AZkBLe+GN815JtOyye7lIS1n2I7En3oImoUWNaJEYwwJ8+LmjxMwDCtAkR0XwbvY+c+nsKPEtkjb3sAu6I148RmwWsGncSRqUaJrljOypaW9dS+GO4Ujjz3/lw1lrxSUhIqVc0E7kyRW8kP3QCaNBwArYteHreZFFp6XmtKMtXaEA3saJYILxaaXlYkoRi4k8S2/K8aw3ZMR4tDCOfB4o47JaeiA/e185RK3A+mLn9xTDhTdZqTQpv17/YRPcgmwzzu30fhVXQT/SuI0sO+bzCO4YGoEwoBX718AWhdLJFoFq1B7k2ZEzXTAtjEXQEWm601ndU/jhAasdfasdasdfasdfa3eraszxqwefasdfadasdffsFIfAsjQb4HdkmHuCOeJrJOd+CYvdEeqJJNnF6AbHyYHIECkj0Qq1kEfLOEsqzd5nDbtkKBte6M1trbjlHtJ2Yb8w6o/q/6Sbj7wf/cW3LIYEdeVCjScozVcQ9R83ea05J+QOAr4nAoGBAMaqUzLJfLNWZ5Qosmir2oHStFlZpxspax/ln7DlWLW4wPB4YJalSVovF2Buo8hr8X65lnPiE41M+G0Z7icEXiFyDBFDCtzx0x/RmaBokLathrFtI81UCx4gQPLaSVNMlvQA539GsubSrO4LpHRNGg/weZ6EqQOXvHvkUkm2bDDJAoGATytFNxen6GtC0ZT3SRQMWYfasdf3xbtuykmnluiofasd2sfmjnljkt7khghmghdasSDFGQfgaFoKfaawoYeHC2XasVUsVviBn8kPSLSVBPX4JUfQmA6h8HsajeVahxN1U9e0nYJ0sYDQFUMTS2t8RT57+WK/0ONwTWHdu+KnaJECgYEAid/ta8LQC3p82iNAZkpWlGDSD2yb/8rH8NQg9tjEryFwrbMtfX9qn+8srx06B796U3OjifstjJQNmVI0qNlsJpQK8fPwVxRxbJS/pMbNICrf3sUa4sZgDOFfkeuSlgACh4cVIozDXlR59Z8Y3CoiW0uObEgvMDIfenAj98pl3ZkCgYEAj/UCSni0dwX4pnKNPm6LUgiS7QvIgM3H9piyt8aipQuzBi5LUKWwDlQC4Zb73nHgdREtQYYXTu7p27Bl0Gizz1sW2eSgxFU8eTh+ucfVwOXKAXKU5SeI+MbuBfUYQ4if2N/BXn47+/ecf3A4KgB37Le5SbLDddwCNxGlBzbpBa0=-----END RSA PRIVATE KEY-----"""private_key = paramiko.RSAKey(file_obj=StringIO(key_str))transport = paramiko.Transport(('10.0.1.40', 22))transport.connect(username='wupeiqi', pkey=private_key)ssh = paramiko.SSHClient()ssh._transport = transportstdin, stdout, stderr = ssh.exec_command('df')result = stdout.read()transport.close()print(result)
基于私钥字符串进行连接

 

转载于:https://www.cnblogs.com/caibao666/p/6775449.html

你可能感兴趣的文章
String、ANSIString、PChar及TBytes之间的转换 BytesOf move stringof
查看>>
js中的特殊符号含义
查看>>
RedisTemplate和StringRedisTemplate的区别
查看>>
Linux下干净卸载mysql
查看>>
【转】TCP是流传输协议,UDP是包传输协议
查看>>
Javascript基础1
查看>>
SNF快速开发平台2019-权限管理模型实践-权限都在这里
查看>>
Shell脚本语言与编译型语言的差异
查看>>
错误:linker command failed with exit code 1 (use -v to see invocation)
查看>>
12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间
查看>>
css Reset
查看>>
js正则表达式大全
查看>>
多线程 NSThread GCD
查看>>
ZevenOS 5.0 发布,德国人的 Linux 发行
查看>>
pictureBox绑定Base64字符串
查看>>
postgre索引
查看>>
哈夫曼编码译码系统(c/c++)
查看>>
Hbase性能调优(一)
查看>>
5自由落体运动
查看>>
python数据处理的常用操作
查看>>