python实现ssh远程连接,以及文件的传送

一、使用工具

win7 pycharmpython2.7.14, pip 19.2.3

二、测试过程

DUT(待测物)接入网络中,然后远程操作DUT,使用SSH远程登录到主机,然后执行相应的command即可。

三、使用到的库

paramikopython中的一个库)

四、模块简介

遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

首先安装paramiko这个包

五、模块连接使用接口

安装命令:pip install paramiko

导入paramiko

连接方法:paramiko.SSHClient()

执行方法:exec_command()

断开连接:close()

信息传输:Transport(待定)

六、输入

Ip10.65.150.171

密码:ns0fucs123

用户名:root

命令:ls(罗列出DUT下面拥有的目录结构)

输出:相应的命令所应该输出的东西

linux下面的目录输出出来

验证:

七、文件的传输

八、风险分析:

这个脚本可能写不出来,这个库目前网上只是给出了连接的过程。但是还没有关于文件的传输的说明,还需要进一步的调研工作。现在只是将这个里面的连接整明白了。连接下面的东西还不是特别的明白。以及连接中文件的传递还不是特别的清楚。

九、附件:

 连接的部分代码

# -*- coding: utf-8 -*
# 测试过程中,比较常用的操作就是将DUT(待测物)接入网络中,然后远程操控对DUT,
# 使用SSH远程登陆到主机,然后执行相应的command即可
# python 代码如下:
# paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接
# 首先第一步我们需要安装paramiko这个包
# 安装命令:pip install paramiko
# 导入paramiko包
import paramiko
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 允许连接不在know_hosts文件中的主机
s.connect("10.65.150.53",22,"root", "nsf0cus123")
execmd = 'ls' #需要输入的命令
stdin, stdout, stderr = s.exec_command (execmd)
print(stdout.read())
s.close()
#结果
#b'/home/usra
'

文件传送的部分代码

# -*- coding: utf-8 -*-
import paramiko
transport = paramiko.Transport(('10.65.150.53', 22))
transport.connect(username='root', password='nsf0cus123')
sftp = paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py   '/tmp/test_from_win'
sftp.put('/Users/dell/PycharmProjects/restful/syh.txt', "/tmp/2.txt")
# 将remove_path 下载到本地 local_path
# sftp.get('/root/oldgirl.txt', 'fromlinux.txt')

transport.close()
原文地址:https://www.cnblogs.com/littleswan/p/11512038.html