使用Python paramiko模块实现SSH登录工具

版权申诉
5星 · 超过95%的资源 1 下载量 169 浏览量 更新于2024-08-28 收藏 137KB PDF 举报
"Python实用工具,使用paramiko模块创建一个简单的SSH登录工具,该工具支持在命令行中管理服务器连接信息,如添加、删除IP、端口、密码,并能自动输入密码进行远程登录。适用于Windows系统,基于Python 3.5.4版本。" 在Python编程中,paramiko是一个强大的用于实现SSHv2协议的库,它允许程序员进行安全的远程通信,包括执行命令、传输文件等。在这个实用工具中,paramiko被用来创建一个简单的命令行SSH登录工具,方便开发者与远程服务器进行交互。 首先,环境搭建部分要求用户安装Python并将其添加到环境变量中,确保可以全局调用。接着,通过pip安装paramiko模块以及其他可能需要的Python内置模块。由于目标是Windows系统,所以这个工具应该可以在Windows环境下正常运行。 主要功能包括: 1. 添加/删除连接信息:工具允许用户管理远程服务器的连接配置,包括IP地址、端口和登录密码。这些信息可能存储在一个文件中,如"data/info.d",以便工具读取和操作。 2. 自动登录:使用paramiko的`SSHClient`类,可以设置`AutoAddPolicy`策略来自动处理服务器的主机密钥,然后通过`connect`方法连接到指定的服务器,传入IP、端口、用户名和密码。自动登录功能省去了手动输入密码的步骤。 相关代码示例展示了如何使用paramiko进行SSH连接: ```python import os import base64 import sys import paramiko # 获取脚本路径 path = os.path.dirname(os.path.abspath(sys.argv[0])) def ssh_connect(host_ip, host_port, username, password): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: ssh.connect(host_ip, host_port, username, password, allow_agent=False, look_for_keys=False) print('[INFO]: 连接成功') except: print('[INFO]: 连接失败') while True: # 接收用户输入的命令 command = input('请输入命令 (<#q>退出): ') if command.strip() == '#q': ssh.close() return # 执行远程命令 stdin, stdout, stderr = ssh.exec_command(command) # 处理命令输出 out_content = stdout.readlines() if len(out_content) < 1: print('错误:') print(stderr.readlines()) else: print('结果:') for o in out_content: print(o) ``` 在`ssh_connect`函数中,当用户输入命令后,工具会通过`exec_command`方法执行远程服务器上的命令,并获取输出。输出内容将被打印出来,方便用户查看。 此外,`choose_host`函数可能是用来从已保存的服务器信息列表中选择要连接的服务器,但具体实现没有给出。通常,这会涉及读取配置文件,解析IP、端口和密码等信息,然后调用`ssh_connect`进行连接。 总结来说,这个工具提供了一个便捷的方式,通过Python和paramiko模块在命令行界面实现对远程服务器的SSH连接和管理,简化了开发者的日常运维工作。