天天看点

paramiko 堡垒机用paramiko写堡垒机paramiko堡垒机

paramiko模块,基于SSH用于连接远程服务器并执行相关操作。

基础用法:

SSHClient 封装 Transport

由此我们可以看出来,ssh执行命令时,我们可以使用sshclient transport两种方式来实现

封装transport:

用于连接远程服务器并执行上传下载

有此看出,如果只做上传下载方式的话,我们只能使用transport,其实无论是ssh,还是sftp,都是调用了transport,基于socket实现的

demo:

对于更多限制命令,需要在系统中设置:

位置:<code>/etc/sudoers</code>,代码:

管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码)

用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表

用户选择服务器,并自动登陆

执行操作并同时将用户操作记录

需要注意的是,如果想实现用户登录后直接操作,需要配置下堡垒机用户家目录的<code>.bashrc</code>文件:

将这两行假如即可.

看下实现方式:

但此次我们会发现,没有tab补全,跟我们真是在shell里执行命令还是略有差距的,那么来第二个.

在生产中,我们还需要更多的需求:

有日志记录,我们可以把管理员的每一条记录都记录到数据库中

tab补全时,记录的中间会有空格之类的需要处理

我们来看下怎么实现:

珍藏下吧:

其实堡垒机的难点是在数据库的设计上