python的paramiko模块简单应用详解编程语言

用法1,SSHClient

分别可以使用密码和秘钥登陆,然后执行命令,并且获取执行结果

import paramiko 
 
#创建一个SSH对象 
ssh = paramiko.SSHClient() 
 
#允许连接不在know_hosts文件中的主机 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
 
#通过用户名和密码去连接服务器 
ssh.connect(hostname="127.0.0.1",port=22,username="xxxxx",password="123") 
 
#执行命令,stdin是输入,stdout是正常的输入,stderr是错误的输出,这里正常的输出 
#和错误的只能有一个有值 
stdin,stdout,stderr = ssh.exec_command("df") 
 
#获取命令结果 
res = stdout.read() 
res = stderr.read() 
ssh.close() 
 
 
# 上面是基于用户名密码访问ssh,其实还可以通过秘钥去访问ssh 
 
 
 
#创建一个SSH对象 
ssh = paramiko.SSHClient() 
 
priv_key = paramiko.RSAKey.from_private_key_file("ke用的路径") 
#允许连接不在know_hosts文件中的主机 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
 
#通过秘钥去连接服务器 
ssh.connect(hostname="127.0.0.1",port=22,username="xxxxx",pkey=priv_key) 
 
#执行命令,stdin是输入,stdout是正常的输入,stderr是错误的输出,这里正常的输出 
#和错误的只能有一个有值 
stdin,stdout,stderr = ssh.exec_command("df") 
 
#获取命令结果 
res = stdout.read() 
res = stderr.read() 
ssh.close() 

 

用法2,transport,上传和下载文件

import paramiko 
 
transport = paramiko.Transport(("hostname",22)) 
 
#通过用户名密码去连接 
transport.connect(username="xxxx",password="123") 
 
sftp = paramiko.SFTPClient.from_transport(transport) 
 
#把本地文件上传到远程 
sftp.put("/tmp/local/xxxx.py","tmp/test.py") 
 
 
#把远程文件下载到本地 
sftp.get("remove_path","local_path") 
 
#关闭transport 
transport.close() 

  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20871.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论