Python远程控制模块paramiko

31 篇文章 0 订阅
参考: https://www.cnblogs.com/gregoryli/p/7838328.html

pip install paramiko

Linux:

 

# pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
 
# 下载安装 pycrypto
 wget http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz 
tar -xvf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python setup.py build
python setup.py install
 
# 进入python环境,导入Crypto检查是否安装成功
from Crypto.Cipher import AES
 
# 下载安装 paramiko
目前新的版本,官网在此:
https://github.com/paramiko/paramiko
unzip paramiko-master.zip
cd paramiko-master
python setup.py build
python setup.py install
centos7 Python3 可以直接pip3 install paramiko 我用的这种方法
# 进入python环境,导入paramiko检查是否安装成功

2.远程连接Linux
import paramiko
  
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect('192.168.179.130', 22, 'root', '123456')
  
# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
print(stdout.read())
print(stdout.read().decode())

# 关闭连接
ssh.close()

 

 

3. 通过公钥连接,前提是两台Linux可以互相连接

比如在Linux1(192.168.179.131)上配置公钥私钥,通过ssh 192.168.179.130无需输入密码可以连接Linux2

[root@greg02 ~]# ssh 192.168.179.130
Last login: Wed Nov 15 19:31:19 2017 from 192.168.179.131
[root@greg01 ~]#
[root@greg01 ~]#exit
logout
Connection to 192.168.179.130 closed.




import paramiko
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
 
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect('192.168.179.130', 22, 'root', '123456',key=private_key) 

# 执行命令 
stdin, stdout, stderr = ssh.exec_command('df') 

# 获取命令结果 
result = stdout.read() 

# 关闭连接 
ssh.close()

 

 

4.上传或下载文件

import os,sys
import paramiko

t = paramiko.Transport(('192.168.179.130',22))
t.connect(username='root',password='greg311')

sftp = paramiko.SFTPClient.from_transport(t)

sftp.get('/root/test.py','d:/test.py')
sftp.put('d:/test.jpg','/root/test.jpg')
t.close()

 

5.通过密钥上传或下载文件

import paramiko

pravie_key_path = '/root/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(pravie_key_path)

t = paramiko.Transport(('192.168.179.130',22))
t.connect(username='wupeiqi',pkey=key)

sftp = paramiko.SFTPClient.from_transport(t)
sftp.put('/tmp/test3.py','/tmp/test3.py') 
sftp.get('/tmp/test4.py','/tmp/test4.py') 
t.close()

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值