其实 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
如下,运行该程序,可以看到控制台输出的结果: