使用Python paramiko模块实现SSH登录工具
版权申诉
5星 · 超过95%的资源 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连接和管理,简化了开发者的日常运维工作。
2020-12-17 上传
2020-09-17 上传
2021-01-21 上传
2020-12-25 上传
2021-01-20 上传
2020-09-17 上传
102 浏览量
2020-09-17 上传
2020-12-25 上传
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析