python 模拟 ssh 执行远程命令

Python025

python 模拟 ssh 执行远程命令,第1张

日常开发连接 Linux 服务器,都会用到 ssh 客户端的软件

其实 python 有一个模块,可以简单模拟一个 ssh 客户端/服务端

编写一些自动化的的任务时,会经常和它打交道

简单记录一下 paramiko 的基本使用

paramiko 不是标准库,需要自行安装

要求 py2.7,3.4 版本以上 [1]

在得到一个 ssh_client 客户端连接对象后

第一次和服务器建立连接,需要选择是否自动将服务器的 host_key 公钥,记录在本地

因为,在计算机的世界里,没有永久的朋友-- IP 短时间里不会刷新,但是系统可能随时被重置

否则会报错提示:

可以加入 logging 模块,查看详细的通讯过程

使用三个变量,获取返回的信息对象

读取命令的执行结果

首先,我的windows系统上有python2和python3。使用下面命令切换到python3:

activate py3

1

接着使用下面命令下载相关模块:

pip install ecdsa

pip install Crypto

pip install paramiko

1

2

3

连接服务器操作:

# -*- coding: utf-8 -*-

import paramiko

# 服务器相关信息,下面输入你个人的用户名、密码、ip等信息

ip = ""

port = 22

user = ""

password = ""

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 建立连接

ssh.connect(ip,port,user,password,timeout = 10)

#输入linux命令

stdin,stdout,stderr = ssh.exec_command("pwd")

# 输出命令执行结果

result = stdout.read()

print(result)

#关闭连接

ssh.close()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

如下,运行该程序,可以看到控制台输出的结果: