paramiko模块,基于SSH用于连接远程服务器并执行相关操作。
基础用法:
SSHClient 封装 Transport
由此我们可以看出来,ssh执行命令时,我们可以使用sshclient transport两种方式来实现
封装transport:
用于连接远程服务器并执行上传下载
有此看出,如果只做上传下载方式的话,我们只能使用transport,其实无论是ssh,还是sftp,都是调用了transport,基于socket实现的
demo:
对于更多限制命令,需要在系统中设置:
位置:<code>/etc/sudoers</code>,代码:
管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码)
用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表
用户选择服务器,并自动登陆
执行操作并同时将用户操作记录
需要注意的是,如果想实现用户登录后直接操作,需要配置下堡垒机用户家目录的<code>.bashrc</code>文件:
将这两行假如即可.
看下实现方式:
但此次我们会发现,没有tab补全,跟我们真是在shell里执行命令还是略有差距的,那么来第二个.
在生产中,我们还需要更多的需求:
有日志记录,我们可以把管理员的每一条记录都记录到数据库中
tab补全时,记录的中间会有空格之类的需要处理
我们来看下怎么实现:
珍藏下吧:
其实堡垒机的难点是在数据库的设计上