使用Python paramiko模块实现SSH登录工具
版权申诉
5星 · 超过95%的资源 100 浏览量
更新于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 上传
2021-01-20 上传
102 浏览量
2020-09-17 上传
2020-12-25 上传
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- 竞速
- hamdown:[WIP]面向Haml和Markdown粉丝的下一代模板语言
- 参考资料-客户尽职调查在金融服务创新形势下的挑战与对策.zip
- galaxyjs.github.io:GalaxyJS的官方文档网站
- Disable numbers-crx插件
- cesarevalo22:PsicoAsistenteWeb接口React
- 弹簧质量阻尼器:弹簧质量阻尼器模型的PID控制-matlab开发
- 计算器
- Dobrabet-crx插件
- 第一个实验室Ruby学习cli-nitrous-q-000
- MERN-Template:感谢Dakota Rennemann和佛罗里达大学开源俱乐部。 创建的模板存储库将使用Heroku部署启动MERN堆栈项目。 因此,它是针对此用例的,如果您发现此模板但不属于该组,请在以下位置使用原始存储库
- SimpleApp
- 3x3Determinant App:可视化如何取 3x3 矩阵的行列式-matlab开发
- Widget 101: Últimas publicaciones-crx插件
- 插值超级功率q-000
- Breadfit_test