paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作。

如果python服务器对被远程控制机器开启了免密验证,即在python服务器上可通过ssh 用户名@被控制机器ip 登录被远程控制机器,而不用输入密码,那么获取python服务器的私钥并通过私钥进行连接,如果没有开启免密验证则通过密码进行连接。

1.开启免密验证

#执行命令
import paramiko
#获取本机私钥
private_key=paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
#实例化SSHClient
ssh = paramiko.SSHClient()
#自动添加策略,保存python服务器的主机名和密钥信息
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接被远程控制机器
ssh.connect('被控制机器ip', 端口号, '登录用户名', private_key[,timeout=n])
#打开一个channel并执行命令
stdin, stdout, stderr = ssh.exec_command('command')
#打印执行结果
print(stdout.read())
#关闭SSHClient
ssh.close()
#上传文件
import paramiko
#获取本机私钥
private_key=paramiko.RSAKey.from_private_key_file(/root/.ssh/id_rsa)
#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名',private_key)
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#上传文件
sftp.put('log.log','/tmp/log.log')
#关闭sftp连接
t.close()

#下载文件
import paramiko
#获取本机私钥
private_key=paramiko.RSAKey.from_private_key_file(/root/.ssh/id_rsa)
#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名',private_key)
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#下载文件
sftp.get('/tmp/log.log', 'log3.log')
#关闭sftp连接
t.close()

2.未开启免密验证

#执行命令
import paramiko
#实例化SSHClient
ssh = paramiko.SSHClient()
#自动添加策略,保存python服务器的主机名和密钥信息
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接被远程控制机器
ssh.connect('被控制机器ip', 端口号, '登录用户名', '登录密码'[,timeout=n])
#打开一个channel并执行命令
stdin, stdout, stderr = ssh.exec_command('command')
#打印执行结果
print(stdout.read())
#关闭SSHClient
ssh.close()
#上传文件
import paramiko#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名','登录密码')
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#上传文件
sftp.put('log.log','/tmp/log.log')
#关闭sftp连接
t.close()

#下载文件
import paramiko#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名','登录密码')
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#下载文件
sftp.get('/tmp/log.log', 'log3.log')
#关闭sftp连接
t.close()

python的paramiko模块-远程登录linux主机并操作的更多相关文章

  1. 利用python 下paramiko模块无密码登录

    利用python 下paramiko模块无密码登录   上次我个大家介绍了利用paramiko这个模块,可以模拟ssh登陆远程服务器,并且可以返回执行的命令结果,这次给大家介绍下如何利用已经建立的密钥 ...

  2. 使用SSH客户端远程登录Linux主机

    使用SSH客户端远程登录Linux主机(可替代samba.ftp服务) . Linux系统起初就是为多用户而产生的,可以允许多个用户同时登录linux主机各自进行操作,如图1所示: 图1 SSH(Se ...

  3. Windows通过SSH远程登录Linux主机

    准备工作:1.Windows系统下装有VMware虚拟机且是Linux系统2.终端连接工具Xshell 63.本次实验系统IP如下 系统 IP Windows10 192.168.37.111 Cen ...

  4. 使用paramiko模块远程登录并上传或下载文件

    1.paramiko安装 1)安装PyCrypto2.6 for Python 2.7 64bit.地址:http://www.voidspace.org.uk/python/modules.shtm ...

  5. 利用Paramiko模块远程连接Linux

    使用Paramiko模块模拟SSH远程连接到服务器,并执行命令.(支持Tab键补全) 1.安装相关模块: 1)安装 Crypto 模块: 下载源码包解压 安装: sudo python setup.p ...

  6. Linux-解决putty无法直接使用root用户远程登录linux主机的问题

    问题描述: 有时,在使用putty连接远程linux主机时会发现,无法直接使用root登录, 但是可以使用其他用户登录,然后切换至root用户. 解决办法: 1.修改配置文件 vi /etc/ssh/ ...

  7. macbook使用“终端”远程登录linux主机

    登录mac系统后,依次打开顶部菜单,“前往” -> “应用程序” -> “实用工具” -> “终端”,如下图:   在打开的终端页面,输入如下代码: ssh user@hostnam ...

  8. 好使-利用python 下paramiko模块无密码登录

    [root@salt-minion02 paramiko]# vim baoleiji4.py # -*- coding:utf-8 -*-import paramikoprivate_key = p ...

  9. 004远程登录Linux系统

    通过windows主机远程登录Linux主机 前提一:从windows能ping通Linux 前提二:关闭Linux防火墙,运行命令:/etc/init.d/iptables stop (1)使用Pu ...

随机推荐

  1. sqlite与android交互 (封装)

    学android已经有大概一周时间了吧 ,总感觉自己基础不怎么好,只能通过一点一点积累着敲来巩固平常的知识,有的时候就先不封装的敲一遍,再封装上,有些语句真的记不住,虽然知道他是什么意思,于是乎就反复 ...

  2. rm: Argument list too long

    rm -rf  /testdir/* -bash: /bin/rm: Argument list too long 解决: cd /testdir/; ls | xargs rm -rf

  3. 谷歌浏览器chrome与firefox的冲突(未解之谜)

    那年,公司开发了一套在线制作电子书的系统 e-textbook. 我负责小学电脑科教材在线题目的制作. 利用 ps制作剪裁好图片,导入系统,制作题目,并通知同事添加代码. 检测时,却发现有一道图片拖放 ...

  4. QQMusic绿钻兄,你可安好?我需要晴天。

    不好意思,年纪这样大了,还依靠吐槽来保持呆毛的正能量,实在对不住,先说对不起. QQMusic是我最喜欢的腾讯增值服务,正版内容,海量歌手,高清下载.实在是音乐软件中高大上的典范,除了歌手排名中前十中 ...

  5. ionic3 笔记

    ionic3的常用命令: //新建项目.ionic start ionic_tab tabs // 新建页面ionic g page NewPage// 查看usb链接的手机adb devices c ...

  6. Entity Framework Code first 可能会导致循环或多个级联路径.

    用code first映射数据库报错 Introducing FOREIGN KEY constraint 'FK_dbo.Roles_dbo.SubSystems_SubSystemID' on t ...

  7. SecureCRT问题

    使用SecureCRT 与虚拟机进行通信,提示The remote system refused the connection 解决:由于缺少SSH服务器端 sudo apt-get install ...

  8. SQL Server 最大并行度

    一.概念 1.关联掩码(affinitymask) 为了执行多任务,MicrosoftWindows2000和WindowsServer2003有时会在不同的处理器之间移动进程线程.虽然从操作系统方面 ...

  9. FIS前端集成解决方案

    FIS前端集成解决方案-文档结构 什么是FIS 部署FIS FIS基本使用 模块定义 加载方式 调用Tangram 2.0 FIS开发实例 --附件下载-- 什么是FIS FIS提供了一套贯穿开发流程 ...

  10. aarch64_m3

    mrpt-stereo-camera-calibration-1.4.0-1.fc26.aarch64.rpm 2017-03-17 10:02 143K fedora Mirroring Proje ...